export interface AptlyConfig {
    baseURL: string;
    timeout?: number;
    authToken?: string;
}
export interface Repository {
    Name: string;
    Comment?: string;
    DefaultDistribution?: string;
    DefaultComponent?: string;
}
export interface Package {
    Key: string;
    ShortKey?: string;
    Architecture?: string;
    Description?: string;
    Package?: string;
    Version?: string;
    Section?: string;
    Maintainer?: string;
    Homepage?: string;
    Size?: number;
    InstalledSize?: number;
}
export interface Mirror {
    Name: string;
    ArchiveRoot: string;
    Distribution: string;
    Components: string[];
    Architectures: string[];
    LastDownloadDate?: string;
}
export interface Snapshot {
    Name: string;
    CreatedAt: string;
    Description: string;
}
export interface PublishedRepository {
    Prefix: string;
    Distribution: string;
    Architectures: string[];
    Sources: Array<{
        Component: string;
        Name: string;
    }>;
    SourceKind: 'local' | 'snapshot';
}
export declare class AptlyClient {
    private client;
    constructor(config: AptlyConfig);
    ping(): Promise<boolean>;
    listRepositories(): Promise<Repository[]>;
    getRepository(name: string): Promise<Repository>;
    createRepository(name: string, comment?: string, defaultDistribution?: string, defaultComponent?: string): Promise<Repository>;
    deleteRepository(name: string, force?: boolean): Promise<void>;
    listPackages(repoName: string, query?: string): Promise<Package[]>;
    addPackages(repoName: string, directory: string, files?: string[]): Promise<void>;
    listMirrors(): Promise<Mirror[]>;
    createMirror(name: string, archiveURL: string, distribution: string, components?: string[], architectures?: string[]): Promise<Mirror>;
    getMirror(name: string): Promise<Mirror>;
    updateMirror(name: string): Promise<void>;
    listSnapshots(): Promise<Snapshot[]>;
    createSnapshot(name: string, repoName: string, description?: string): Promise<Snapshot>;
    listPublishedRepositories(): Promise<PublishedRepository[]>;
    publishRepository(repoName: string, distribution: string, prefix?: string): Promise<PublishedRepository>;
    publishSnapshot(snapshotName: string, distribution: string, prefix?: string): Promise<PublishedRepository>;
    listUploadedFiles(directory?: string): Promise<Record<string, Array<{
        filename: string;
        size: number;
    }>>>;
    deleteUploadedFiles(directory: string, filename?: string): Promise<void>;
}
