import type { Config, Asset, AssetDetails, SearchOptions, SearchResult, CreateAssetInput, Store, User, DeviceCodeResponse, GenerationJob, CreatureGenerationParams, WorldGenerationParams, NPCGenerationParams, QuestGenerationParams, Project, ProjectMember, ProjectRelease } from "../types.js"; export declare class GameVaultSDK { protected baseUrl: string; protected apiKey?: string; protected accessToken?: string; protected timeout: number; constructor(config: Config); setApiKey(apiKey: string): void; setAccessToken(token: string): void; getApiKey(): string | undefined; getAccessToken(): string | undefined; protected getHeaders(): Record; protected request(endpoint: string, options?: RequestInit): Promise; search(options: SearchOptions): Promise; getAsset(id: string): Promise; getAssetFile(id: string): Promise; createAsset(input: CreateAssetInput): Promise; updateAsset(id: string, input: Partial): Promise; deleteAsset(id: string): Promise; rateAsset(id: string, rating: number, reviewText?: string): Promise; uploadAsset(file: File | Blob, metadata: CreateAssetInput, onProgress?: (loaded: number, total: number) => void): Promise; downloadAsset(id: string): Promise; getStore(id: string): Promise; getStoreBySlug(slug: string): Promise; getMe(): Promise; getUser(id: string): Promise; generateCreature(params: CreatureGenerationParams): Promise; generateWorld(params: WorldGenerationParams): Promise; generateNPC(params: NPCGenerationParams): Promise; generateQuest(params: QuestGenerationParams): Promise; getGenerationJob(jobId: string): Promise; waitForJob(jobId: string, options?: { pollInterval?: number; timeout?: number; }): Promise; listProjects(options?: { limit?: number; offset?: number; }): Promise<{ data: Project[]; total: number; }>; getProject(idOrSlug: string): Promise; createProject(data: { storeId: number; name: string; slug: string; description?: string; visibility?: string; tags?: string[]; }): Promise; updateProject(id: string, data: Partial<{ name: string; slug: string; description: string; visibility: string; tags: string[]; }>): Promise; archiveProject(id: string): Promise; getProjectMembers(projectId: string): Promise; addProjectMember(projectId: string, userId: string, role?: string): Promise; removeProjectMember(projectId: string, userId: string): Promise; getProjectReleases(projectId: string): Promise; createProjectRelease(projectId: string, data: { version: string; title: string; changelog?: string; isPrerelease?: boolean; }): Promise; requestDeviceCode(clientId?: string): Promise; pollForToken(deviceCode: string, clientId?: string, interval?: number, expiresIn?: number): Promise<{ access_token: string; } | null>; authenticateWithDeviceCode(clientId: string | undefined, onCode: (code: DeviceCodeResponse) => void): Promise<{ access_token: string; } | null>; } export declare function createSDK(config: Config): GameVaultSDK; //# sourceMappingURL=client.d.ts.map