interface IPackagistPackageSource {
    type: string;
    url: string;
    reference: string;
    shasum?: string;
}
interface IPackagistPackageVersionDetails {
    name: string;
    description: string;
    time: string;
    keywords: [string];
    homepage: string;
    version: string;
    version_normalzed: string;
    license: [string];
    authors: [{
        name: string;
        email: string;
        homepage?: string;
        role?: string;
    }];
    source: IPackagistPackageSource;
    dist: IPackagistPackageSource;
    type: string;
    uid: number;
    autoload?: {
        [key: string]: {
            [key: string]: string;
        };
    };
    require?: {
        [key: string]: string;
    };
    'require-dev'?: {
        [key: string]: string;
    };
    suggest?: {
        [key: string]: string;
    };
    extra?: {
        [key: string]: string;
    };
    provide?: {
        [key: string]: string;
    };
    [key: string]: any;
}
interface IPackagistMetadataResponse {
    packages?: {
        [packageName: string]: {
            [version: string]: IPackagistPackageVersionDetails;
        };
    };
}
declare type VendorPackageInput = string | {
    vendor: string;
    package: string;
};
export declare function getPackageMetadata(vp: VendorPackageInput, ifModifiedSince?: string): Promise<{
    data: IPackagistMetadataResponse;
    lastModified: string;
}>;
interface IPackagistPackageDetails {
    name: string;
    description: string;
    time: string;
    maintainers: {
        name: string;
        avatar_url: string;
    };
    versions: {
        [version: string]: IPackagistPackageVersionDetails;
    };
    type: string;
    repository: string;
    github_starts?: number;
    github_watchers?: number;
    github_forks?: number;
    github_open_issues?: number;
    language?: string;
    dependents: number;
    suggesters: number;
    downloads: {
        total: number;
        monthly: number;
        daily: number;
    };
    favers: number;
}
interface IPackagistPackageDetailResponse {
    package: IPackagistPackageDetails;
}
export declare function getPackageDetails(vp: VendorPackageInput): Promise<IPackagistPackageDetailResponse>;
interface IPackagistStatistics {
    totals: {
        downloads: number;
        packages: number;
        version: number;
    };
}
export declare function getPackagistStats(): Promise<IPackagistStatistics>;
export {};
