import type { AlbumFiltersResponse, AlbumListQuery, AlbumListResponse, AlbumStatsResponse, BatchUpdateResult, IImgInfo, ImportResult, IPicGo } from '../../../types';
import { AuthRequestClient } from '../Request';
export declare class AlbumService {
    private static readonly DEFAULT_LIMIT;
    private static readonly DEFAULT_OFFSET;
    private static readonly IMPORT_BATCH_SIZE;
    private static readonly MAX_IMPORT_ATTEMPTS;
    private readonly ctx;
    private readonly client;
    private readonly pendingFilePath;
    constructor(ctx: IPicGo, client?: AuthRequestClient);
    list(query?: AlbumListQuery): Promise<AlbumListResponse>;
    get(id: string): Promise<IImgInfo>;
    update(id: string, data: Partial<IImgInfo>): Promise<IImgInfo>;
    batchUpdate(items: {
        id: string;
        data: Partial<IImgInfo>;
    }[]): Promise<BatchUpdateResult>;
    delete(id: string | string[]): Promise<void>;
    getStats(): Promise<AlbumStatsResponse>;
    getFilters(): Promise<AlbumFiltersResponse>;
    import(items: IImgInfo[]): Promise<ImportResult>;
    getPending(): Promise<IImgInfo[]>;
    addToPending(items: IImgInfo[]): Promise<IImgInfo[]>;
    retryPending(): Promise<ImportResult>;
    private normalizeImportItems;
    private importBatchWithRetry;
    private normalizeBatchSummary;
    private resolveContentType;
    private buildExtra;
    private emitImportProgress;
    private shouldRetry;
    private isUnauthorizedError;
    private hasApiErrorCode;
    private writePending;
    private warnInvalidPendingFile;
    private isFileMissing;
    private isImgInfoLike;
}
