@steambrew/client
Version:
A support library for creating plugins with Millennium.
146 lines (126 loc) • 4.61 kB
text/typescript
/**
* 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,
}