UNPKG

@steambrew/client

Version:
146 lines (126 loc) 4.61 kB
/** * Interface for managing screenshots. */ export interface Screenshots { /** * Deletes a local screenshot. * @param appId The ID of the application. * @param screenshotIndex The index of the local screenshot. * @returns a boolean value indicating whether the deletion was successful. */ DeleteLocalScreenshot(appId: string, screenshotIndex: number): Promise<boolean>; DeleteLocalScreenshots(screenshots: ScreenshotToDelete[]): Promise<ScreenshotDeletionResponse>; /** * Retrieves all local screenshots for all applications. * @returns an array of Screenshot objects. */ GetAllAppsLocalScreenshots(): Promise<Screenshot[]>; /** * Retrieves the count of all local screenshots for all applications. * @returns the count of local screenshots. */ GetAllAppsLocalScreenshotsCount(): Promise<number>; /** * Retrieves a range of local screenshots for all applications. * @param start The starting index of the screenshot range. * @param end The ending index of the screenshot range. * @returns an array of Screenshot objects within the specified range. */ GetAllAppsLocalScreenshotsRange(start: number, end: number): Promise<Screenshot[]>; /** * Retrieves all local screenshots. * @returns an array of Screenshot objects. */ GetAllLocalScreenshots(): Promise<Screenshot[]>; /** * Retrieves the game associated with a specific local screenshot index. * @param screenshotIndex The index of the local screenshot. * @returns the ID of the game associated with the screenshot. */ GetGameWithLocalScreenshots(screenshotIndex: number): Promise<number>; /** * Retrieves the last taken local screenshot. * @returns the last taken local screenshot. */ GetLastScreenshotTaken(): Promise<Screenshot>; /** * Retrieves a specific local screenshot for an application. * @param appId The ID of the application. * @param screenshotIndex The index of the local screenshot. * @returns the requested local screenshot. */ GetLocalScreenshotByHandle(appId: string, screenshotIndex: number): Promise<Screenshot>; /** * Retrieves the count of local screenshots for a specific application. * @param appId The ID of the application. * @returns the count of local screenshots for the application. */ GetLocalScreenshotCount(appId: number): Promise<number>; /** * Retrieves the path of a screenshot. * @param appId The ID of the application. * @param hHandle The handle of the screenshot. * @returns the screenshot path or the screenshot directory if no such handle. */ GetLocalScreenshotPath(appId: number, hHandle: number): Promise<string>; /** * Retrieves the number of games with local screenshots. * @returns the number of games with local screenshots. */ GetNumGamesWithLocalScreenshots(): Promise<number>; /** * Gets total screenshot usage in the specified library folder. * @param path Library folder path. * @returns the number of taken space in bytes. */ GetTotalDiskSpaceUsage(path: string): Promise<number>; /** * Opens a local screenshot in the system image viewer. * If the screenshot index is invalid, this function opens the screenshots directory for the specified application ID. * @param appId The ID of the application. * @param screenshotIndex The index of the local screenshot. */ ShowScreenshotInSystemViewer(appId: string, screenshotIndex: number): void; /** * Opens the folder containing local screenshots for a specific application. * @param appId The ID of the application. */ ShowScreenshotsOnDisk(appId: string): void; /** * Uploads a local screenshot. * @param appId The ID of the application. * @param localScreenshot_hHandle The handle of the local screenshot. * @param filePrivacyState The privacy state of the screenshot file. * @returns a boolean value indicating whether the upload was successful. */ UploadLocalScreenshot(appId: string, localScreenshot_hHandle: number, filePrivacyState: EUCMFilePrivacyState): Promise<boolean>; } export interface Screenshot { nAppID: number; strGameID: string; hHandle: number; nWidth: number; nHeight: number; nCreated: number; // timestamp ePrivacy: EUCMFilePrivacyState; strCaption: string; bSpoilers: boolean; strUrl: string; bUploaded: boolean; ugcHandle: string; } export interface ScreenshotToDelete { gameID: string; rgHandles: number[]; } export interface ScreenshotDeletionResponse { bSuccess: boolean; rgFailedRequestIndices: number[]; } export enum EUCMFilePrivacyState { Invalid = -1, Private = 1 << 1, FriendsOnly = 1 << 2, Public = 1 << 3, Unlisted = 1 << 4, }