import type { AbortAssetPackUploadResponse, AssetCategory, AssetPackDetailResponse, AssetPackListResponse, AssetPackSourceBundleResponse, AssetPackVersionsListResponse, ContentRemixRelationsResponse, DeleteAssetPackResponse, DeleteAssetPackVersionResponse, FinalizeAssetPackUploadResponse, InitializeAssetPackUploadRequest, InitializeAssetPackUploadResponse, UploadAssetPackSessionAssetResponse, UploadAssetPackSessionMediaResponse, UpdateAssetPackRequest, UpdateAssetPackResponse, UpdateAssetPackVersionRequest, UpdateAssetPackVersionResponse } from '@playdrop/types';
import type { UploadAssetPackSessionAssetOptions, UploadAssetPackSessionMediaOptions } from '../client.js';
type ApiResponseLike<T> = {
    status: number;
    body: T;
    headers: Headers;
};
type RequestExecutor = <T>(input: {
    method: 'GET' | 'POST' | 'PUT' | 'PATCH' | 'DELETE';
    path: string;
    body?: unknown;
    headers?: Record<string, string>;
    signal?: AbortSignal;
}) => Promise<ApiResponseLike<T>>;
type ErrorHandler = (response: ApiResponseLike<unknown>, defaultMessage: string) => never;
type ParseResponseBody = <T>(response: Response) => Promise<T>;
export declare function buildAssetPacksApiClientMethods(input: {
    request: RequestExecutor;
    handleApiError: ErrorHandler;
    fetchImpl: typeof fetch;
    includeBrowserCredentials: boolean;
    resolveBaseUrl: () => string;
    resolveUrl: (base: string, path: string) => string;
    parseResponseBody: ParseResponseBody;
    resolveToken: () => Promise<string | null>;
    getClientHeaders: () => Record<string, string>;
    buildCreatorAssetPackMutationPath: (creatorUsername: string, packName?: string, suffix?: string) => string;
    normalizeCreatorItemSlug: (value: string, field: 'creator' | 'name') => string;
    normalizeSemverInput: (version: string) => string;
    parseContentDispositionFilename: (headerValue: string | null) => string | null;
}): {
    listAssetPacks(options?: {
        limit?: number;
        offset?: number;
        containsCategory?: AssetCategory;
        containsSubcategory?: string;
        tags?: string[];
    }): Promise<AssetPackListResponse>;
    listAssetPacksForCreator(creatorUsername: string, options?: {
        limit?: number;
        offset?: number;
        containsCategory?: AssetCategory;
        containsSubcategory?: string;
        tags?: string[];
    }): Promise<AssetPackListResponse>;
    fetchAssetPackBySlug(creatorUsername: string, packName: string): Promise<AssetPackDetailResponse>;
    fetchAssetPackDetailBySlug(creatorUsername: string, packName: string): Promise<AssetPackDetailResponse>;
    downloadAssetPackSource(creatorUsername: string, packName: string, version: string): Promise<{
        blob: Blob;
        metadata: AssetPackSourceBundleResponse;
    }>;
    downloadAssetPack(creatorUsername: string, packName: string, version: string): Promise<{
        blob: Blob;
        metadata: AssetPackSourceBundleResponse;
    }>;
    listAssetPackVersions(creatorUsername: string, packName: string, options?: {
        limit?: number;
        offset?: number;
    }): Promise<AssetPackVersionsListResponse>;
    updateAssetPack(creatorUsername: string, name: string, requestBody: UpdateAssetPackRequest): Promise<UpdateAssetPackResponse>;
    updateAssetPackVersion(creatorUsername: string, name: string, version: string, requestBody: UpdateAssetPackVersionRequest): Promise<UpdateAssetPackVersionResponse>;
    deleteAssetPackVersion(creatorUsername: string, name: string, version: string): Promise<DeleteAssetPackVersionResponse>;
    deleteAssetPack(creatorUsername: string, name: string): Promise<DeleteAssetPackResponse>;
    initializeAssetPackUpload(creatorUsername: string, name: string, requestBody: InitializeAssetPackUploadRequest): Promise<InitializeAssetPackUploadResponse>;
    uploadAssetPackSessionAsset(creatorUsername: string, name: string, sessionId: string, uploadKey: string, options: UploadAssetPackSessionAssetOptions): Promise<UploadAssetPackSessionAssetResponse>;
    uploadAssetPackSessionMedia(creatorUsername: string, name: string, sessionId: string, mediaKey: string, options: UploadAssetPackSessionMediaOptions): Promise<UploadAssetPackSessionMediaResponse>;
    finalizeAssetPackUpload(creatorUsername: string, name: string, sessionId: string): Promise<FinalizeAssetPackUploadResponse>;
    abortAssetPackUpload(creatorUsername: string, name: string, sessionId: string): Promise<AbortAssetPackUploadResponse>;
    fetchAssetPackRelated(creatorUsername: string, packName: string): Promise<ContentRemixRelationsResponse>;
};
export {};
//# sourceMappingURL=asset-packs.d.ts.map