import { z } from 'zod';
import type { ReleaseResult } from '../types';
export declare const MinifiedArray: z.ZodEffects<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">, Record<string, unknown>[], Record<string, unknown>[]>;
export type MinifiedArray = z.infer<typeof MinifiedArray>;
export declare const ComposerRelease: z.ZodObject<{
    version: z.ZodString;
    homepage: z.ZodCatch<z.ZodNullable<z.ZodType<string, z.ZodStringDef, string>>>;
    source: z.ZodCatch<z.ZodNullable<z.ZodType<{
        url: string;
    }, z.ZodObjectDef<{
        url: z.ZodString;
    }, "strip", z.ZodTypeAny>, {
        url: string;
    }>>>;
    time: z.ZodCatch<z.ZodNullable<z.ZodType<string, z.ZodStringDef, string>>>;
    require: z.ZodCatch<z.ZodNullable<z.ZodType<{
        php: string;
    }, z.ZodObjectDef<{
        php: z.ZodString;
    }, "strip", z.ZodTypeAny>, {
        php: string;
    }>>>;
}, "strip", z.ZodTypeAny, {
    source: {
        url: string;
    } | null;
    require: {
        php: string;
    } | null;
    time: string | null;
    version: string;
    homepage: string | null;
}, {
    version: string;
    homepage?: unknown;
    source?: unknown;
    time?: unknown;
    require?: unknown;
}>;
export type ComposerRelease = z.infer<typeof ComposerRelease>;
export declare const ComposerReleases: z.ZodCatch<z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">, Record<string, unknown>[], Record<string, unknown>[]>, {
    source: {
        url: string;
    } | null;
    require: {
        php: string;
    } | null;
    time: string | null;
    version: string;
    homepage: string | null;
}[], Record<string, unknown>[]>, z.ZodEffects<z.ZodEffects<z.ZodCatch<z.ZodRecord<z.ZodString, z.ZodCatch<z.ZodNullable<z.ZodObject<{
    version: z.ZodString;
    homepage: z.ZodCatch<z.ZodNullable<z.ZodType<string, z.ZodStringDef, string>>>;
    source: z.ZodCatch<z.ZodNullable<z.ZodType<{
        url: string;
    }, z.ZodObjectDef<{
        url: z.ZodString;
    }, "strip", z.ZodTypeAny>, {
        url: string;
    }>>>;
    time: z.ZodCatch<z.ZodNullable<z.ZodType<string, z.ZodStringDef, string>>>;
    require: z.ZodCatch<z.ZodNullable<z.ZodType<{
        php: string;
    }, z.ZodObjectDef<{
        php: z.ZodString;
    }, "strip", z.ZodTypeAny>, {
        php: string;
    }>>>;
}, "strip", z.ZodTypeAny, {
    source: {
        url: string;
    } | null;
    require: {
        php: string;
    } | null;
    time: string | null;
    version: string;
    homepage: string | null;
}, {
    version: string;
    homepage?: unknown;
    source?: unknown;
    time?: unknown;
    require?: unknown;
}>>>>>, Record<string, {
    source: {
        url: string;
    } | null;
    require: {
        php: string;
    } | null;
    time: string | null;
    version: string;
    homepage: string | null;
}>, unknown>, {
    source: {
        url: string;
    } | null;
    require: {
        php: string;
    } | null;
    time: string | null;
    version: string;
    homepage: string | null;
}[], unknown>]>>;
export type ComposerReleases = z.infer<typeof ComposerReleases>;
export declare const ComposerPackagesResponse: z.ZodEffects<z.ZodEffects<z.ZodObject<{
    packageName: z.ZodString;
    packagesResponse: z.ZodObject<{
        packages: z.ZodRecord<z.ZodString, z.ZodUnknown>;
    }, "strip", z.ZodTypeAny, {
        packages: Record<string, unknown>;
    }, {
        packages: Record<string, unknown>;
    }>;
}, "strip", z.ZodTypeAny, {
    packageName: string;
    packagesResponse: {
        packages: Record<string, unknown>;
    };
}, {
    packageName: string;
    packagesResponse: {
        packages: Record<string, unknown>;
    };
}>, unknown, {
    packageName: string;
    packagesResponse: {
        packages: Record<string, unknown>;
    };
}>, {
    source: {
        url: string;
    } | null;
    require: {
        php: string;
    } | null;
    time: string | null;
    version: string;
    homepage: string | null;
}[], {
    packageName: string;
    packagesResponse: {
        packages: Record<string, unknown>;
    };
}>;
export type ComposerPackagesResponse = z.infer<typeof ComposerPackagesResponse>;
export declare function parsePackagesResponse(packageName: string, packagesResponse: unknown): ComposerReleases;
export declare function extractReleaseResult(...composerReleasesArrays: ComposerReleases[]): ReleaseResult | null;
export declare function extractDepReleases(composerReleases: unknown): ReleaseResult | null;
export declare function parsePackagesResponses(packageName: string, packagesResponses: unknown[]): ReleaseResult | null;
export declare const HashSpec: z.ZodUnion<[z.ZodEffects<z.ZodObject<{
    sha256: z.ZodNullable<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    sha256: string | null;
}, {
    sha256: string | null;
}>, {
    hash: string | null;
}, {
    sha256: string | null;
}>, z.ZodEffects<z.ZodObject<{
    sha1: z.ZodNullable<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    sha1: string | null;
}, {
    sha1: string | null;
}>, {
    hash: string | null;
}, {
    sha1: string | null;
}>]>;
export type HashSpec = z.infer<typeof HashSpec>;
export declare const RegistryFile: z.ZodIntersection<z.ZodUnion<[z.ZodEffects<z.ZodObject<{
    sha256: z.ZodNullable<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    sha256: string | null;
}, {
    sha256: string | null;
}>, {
    hash: string | null;
}, {
    sha256: string | null;
}>, z.ZodEffects<z.ZodObject<{
    sha1: z.ZodNullable<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    sha1: string | null;
}, {
    sha1: string | null;
}>, {
    hash: string | null;
}, {
    sha1: string | null;
}>]>, z.ZodObject<{
    key: z.ZodString;
}, "strip", z.ZodTypeAny, {
    key: string;
}, {
    key: string;
}>>;
export type RegistryFile = z.infer<typeof RegistryFile>;
export declare const PackagesResponse: z.ZodObject<{
    packages: z.ZodEffects<z.ZodCatch<z.ZodRecord<z.ZodString, z.ZodCatch<z.ZodNullable<z.ZodCatch<z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">, Record<string, unknown>[], Record<string, unknown>[]>, {
        source: {
            url: string;
        } | null;
        require: {
            php: string;
        } | null;
        time: string | null;
        version: string;
        homepage: string | null;
    }[], Record<string, unknown>[]>, z.ZodEffects<z.ZodEffects<z.ZodCatch<z.ZodRecord<z.ZodString, z.ZodCatch<z.ZodNullable<z.ZodObject<{
        version: z.ZodString;
        homepage: z.ZodCatch<z.ZodNullable<z.ZodType<string, z.ZodStringDef, string>>>;
        source: z.ZodCatch<z.ZodNullable<z.ZodType<{
            url: string;
        }, z.ZodObjectDef<{
            url: z.ZodString;
        }, "strip", z.ZodTypeAny>, {
            url: string;
        }>>>;
        time: z.ZodCatch<z.ZodNullable<z.ZodType<string, z.ZodStringDef, string>>>;
        require: z.ZodCatch<z.ZodNullable<z.ZodType<{
            php: string;
        }, z.ZodObjectDef<{
            php: z.ZodString;
        }, "strip", z.ZodTypeAny>, {
            php: string;
        }>>>;
    }, "strip", z.ZodTypeAny, {
        source: {
            url: string;
        } | null;
        require: {
            php: string;
        } | null;
        time: string | null;
        version: string;
        homepage: string | null;
    }, {
        version: string;
        homepage?: unknown;
        source?: unknown;
        time?: unknown;
        require?: unknown;
    }>>>>>, Record<string, {
        source: {
            url: string;
        } | null;
        require: {
            php: string;
        } | null;
        time: string | null;
        version: string;
        homepage: string | null;
    }>, unknown>, {
        source: {
            url: string;
        } | null;
        require: {
            php: string;
        } | null;
        time: string | null;
        version: string;
        homepage: string | null;
    }[], unknown>]>>>>>>, Record<string, {
        source: {
            url: string;
        } | null;
        require: {
            php: string;
        } | null;
        time: string | null;
        version: string;
        homepage: string | null;
    }[]>, unknown>;
}, "strip", z.ZodTypeAny, {
    packages: Record<string, {
        source: {
            url: string;
        } | null;
        require: {
            php: string;
        } | null;
        time: string | null;
        version: string;
        homepage: string | null;
    }[]>;
}, {
    packages?: unknown;
}>;
export type PackagesResponse = z.infer<typeof PackagesResponse>;
export declare const PackagistFile: z.ZodObject<{
    packages: z.ZodEffects<z.ZodCatch<z.ZodRecord<z.ZodString, z.ZodCatch<z.ZodNullable<z.ZodCatch<z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">, Record<string, unknown>[], Record<string, unknown>[]>, {
        source: {
            url: string;
        } | null;
        require: {
            php: string;
        } | null;
        time: string | null;
        version: string;
        homepage: string | null;
    }[], Record<string, unknown>[]>, z.ZodEffects<z.ZodEffects<z.ZodCatch<z.ZodRecord<z.ZodString, z.ZodCatch<z.ZodNullable<z.ZodObject<{
        version: z.ZodString;
        homepage: z.ZodCatch<z.ZodNullable<z.ZodType<string, z.ZodStringDef, string>>>;
        source: z.ZodCatch<z.ZodNullable<z.ZodType<{
            url: string;
        }, z.ZodObjectDef<{
            url: z.ZodString;
        }, "strip", z.ZodTypeAny>, {
            url: string;
        }>>>;
        time: z.ZodCatch<z.ZodNullable<z.ZodType<string, z.ZodStringDef, string>>>;
        require: z.ZodCatch<z.ZodNullable<z.ZodType<{
            php: string;
        }, z.ZodObjectDef<{
            php: z.ZodString;
        }, "strip", z.ZodTypeAny>, {
            php: string;
        }>>>;
    }, "strip", z.ZodTypeAny, {
        source: {
            url: string;
        } | null;
        require: {
            php: string;
        } | null;
        time: string | null;
        version: string;
        homepage: string | null;
    }, {
        version: string;
        homepage?: unknown;
        source?: unknown;
        time?: unknown;
        require?: unknown;
    }>>>>>, Record<string, {
        source: {
            url: string;
        } | null;
        require: {
            php: string;
        } | null;
        time: string | null;
        version: string;
        homepage: string | null;
    }>, unknown>, {
        source: {
            url: string;
        } | null;
        require: {
            php: string;
        } | null;
        time: string | null;
        version: string;
        homepage: string | null;
    }[], unknown>]>>>>>>, Record<string, {
        source: {
            url: string;
        } | null;
        require: {
            php: string;
        } | null;
        time: string | null;
        version: string;
        homepage: string | null;
    }[]>, unknown>;
    providers: z.ZodEffects<z.ZodEffects<z.ZodCatch<z.ZodRecord<z.ZodString, z.ZodCatch<z.ZodNullable<z.ZodUnion<[z.ZodEffects<z.ZodObject<{
        sha256: z.ZodNullable<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        sha256: string | null;
    }, {
        sha256: string | null;
    }>, {
        hash: string | null;
    }, {
        sha256: string | null;
    }>, z.ZodEffects<z.ZodObject<{
        sha1: z.ZodNullable<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        sha1: string | null;
    }, {
        sha1: string | null;
    }>, {
        hash: string | null;
    }, {
        sha1: string | null;
    }>]>>>>>, Record<string, {
        hash: string | null;
    } | {
        hash: string | null;
    }>, unknown>, {
        [k: string]: string | null;
    }, unknown>;
}, "strip", z.ZodTypeAny, {
    packages: Record<string, {
        source: {
            url: string;
        } | null;
        require: {
            php: string;
        } | null;
        time: string | null;
        version: string;
        homepage: string | null;
    }[]>;
    providers: {
        [k: string]: string | null;
    };
}, {
    packages?: unknown;
    providers?: unknown;
}>;
export type PackagistFile = z.infer<typeof PackagistFile>;
export declare const RegistryMeta: z.ZodEffects<z.ZodEffects<z.ZodObject<{
    packages: z.ZodEffects<z.ZodCatch<z.ZodRecord<z.ZodString, z.ZodCatch<z.ZodNullable<z.ZodCatch<z.ZodUnion<[z.ZodEffects<z.ZodEffects<z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">, Record<string, unknown>[], Record<string, unknown>[]>, {
        source: {
            url: string;
        } | null;
        require: {
            php: string;
        } | null;
        time: string | null;
        version: string;
        homepage: string | null;
    }[], Record<string, unknown>[]>, z.ZodEffects<z.ZodEffects<z.ZodCatch<z.ZodRecord<z.ZodString, z.ZodCatch<z.ZodNullable<z.ZodObject<{
        version: z.ZodString;
        homepage: z.ZodCatch<z.ZodNullable<z.ZodType<string, z.ZodStringDef, string>>>;
        source: z.ZodCatch<z.ZodNullable<z.ZodType<{
            url: string;
        }, z.ZodObjectDef<{
            url: z.ZodString;
        }, "strip", z.ZodTypeAny>, {
            url: string;
        }>>>;
        time: z.ZodCatch<z.ZodNullable<z.ZodType<string, z.ZodStringDef, string>>>;
        require: z.ZodCatch<z.ZodNullable<z.ZodType<{
            php: string;
        }, z.ZodObjectDef<{
            php: z.ZodString;
        }, "strip", z.ZodTypeAny>, {
            php: string;
        }>>>;
    }, "strip", z.ZodTypeAny, {
        source: {
            url: string;
        } | null;
        require: {
            php: string;
        } | null;
        time: string | null;
        version: string;
        homepage: string | null;
    }, {
        version: string;
        homepage?: unknown;
        source?: unknown;
        time?: unknown;
        require?: unknown;
    }>>>>>, Record<string, {
        source: {
            url: string;
        } | null;
        require: {
            php: string;
        } | null;
        time: string | null;
        version: string;
        homepage: string | null;
    }>, unknown>, {
        source: {
            url: string;
        } | null;
        require: {
            php: string;
        } | null;
        time: string | null;
        version: string;
        homepage: string | null;
    }[], unknown>]>>>>>>, Record<string, {
        source: {
            url: string;
        } | null;
        require: {
            php: string;
        } | null;
        time: string | null;
        version: string;
        homepage: string | null;
    }[]>, unknown>;
    providers: z.ZodEffects<z.ZodEffects<z.ZodCatch<z.ZodRecord<z.ZodString, z.ZodCatch<z.ZodNullable<z.ZodUnion<[z.ZodEffects<z.ZodObject<{
        sha256: z.ZodNullable<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        sha256: string | null;
    }, {
        sha256: string | null;
    }>, {
        hash: string | null;
    }, {
        sha256: string | null;
    }>, z.ZodEffects<z.ZodObject<{
        sha1: z.ZodNullable<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        sha1: string | null;
    }, {
        sha1: string | null;
    }>, {
        hash: string | null;
    }, {
        sha1: string | null;
    }>]>>>>>, Record<string, {
        hash: string | null;
    } | {
        hash: string | null;
    }>, unknown>, {
        [k: string]: string | null;
    }, unknown>;
    includes: z.ZodEffects<z.ZodEffects<z.ZodCatch<z.ZodRecord<z.ZodString, z.ZodCatch<z.ZodNullable<z.ZodUnion<[z.ZodEffects<z.ZodObject<{
        sha256: z.ZodNullable<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        sha256: string | null;
    }, {
        sha256: string | null;
    }>, {
        hash: string | null;
    }, {
        sha256: string | null;
    }>, z.ZodEffects<z.ZodObject<{
        sha1: z.ZodNullable<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        sha1: string | null;
    }, {
        sha1: string | null;
    }>, {
        hash: string | null;
    }, {
        sha1: string | null;
    }>]>>>>>, Record<string, {
        hash: string | null;
    } | {
        hash: string | null;
    }>, unknown>, {
        key: string;
        hash: string | null;
    }[], unknown>;
    "provider-includes": z.ZodEffects<z.ZodEffects<z.ZodCatch<z.ZodRecord<z.ZodString, z.ZodCatch<z.ZodNullable<z.ZodUnion<[z.ZodEffects<z.ZodObject<{
        sha256: z.ZodNullable<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        sha256: string | null;
    }, {
        sha256: string | null;
    }>, {
        hash: string | null;
    }, {
        sha256: string | null;
    }>, z.ZodEffects<z.ZodObject<{
        sha1: z.ZodNullable<z.ZodString>;
    }, "strip", z.ZodTypeAny, {
        sha1: string | null;
    }, {
        sha1: string | null;
    }>, {
        hash: string | null;
    }, {
        sha1: string | null;
    }>]>>>>>, Record<string, {
        hash: string | null;
    } | {
        hash: string | null;
    }>, unknown>, {
        key: string;
        hash: string | null;
    }[], unknown>;
    "providers-lazy-url": z.ZodCatch<z.ZodNullable<z.ZodType<string, z.ZodStringDef, string>>>;
    "providers-url": z.ZodCatch<z.ZodNullable<z.ZodType<string, z.ZodStringDef, string>>>;
    "metadata-url": z.ZodCatch<z.ZodNullable<z.ZodType<string, z.ZodStringDef, string>>>;
}, "strip", z.ZodTypeAny, {
    packages: Record<string, {
        source: {
            url: string;
        } | null;
        require: {
            php: string;
        } | null;
        time: string | null;
        version: string;
        homepage: string | null;
    }[]>;
    includes: {
        key: string;
        hash: string | null;
    }[];
    providers: {
        [k: string]: string | null;
    };
    "provider-includes": {
        key: string;
        hash: string | null;
    }[];
    "providers-lazy-url": string | null;
    "providers-url": string | null;
    "metadata-url": string | null;
}, {
    packages?: unknown;
    providers?: unknown;
    includes?: unknown;
    "provider-includes"?: unknown;
    "providers-lazy-url"?: unknown;
    "providers-url"?: unknown;
    "metadata-url"?: unknown;
}>, {
    packages: Record<string, {
        source: {
            url: string;
        } | null;
        require: {
            php: string;
        } | null;
        time: string | null;
        version: string;
        homepage: string | null;
    }[]>;
    includes: {
        key: string;
        hash: string | null;
    }[];
    providers: {
        [k: string]: string | null;
    };
    "provider-includes": {
        key: string;
        hash: string | null;
    }[];
    "providers-lazy-url": string | null;
    "providers-url": string | null;
    "metadata-url": string | null;
}, unknown>, {
    packages: Record<string, {
        source: {
            url: string;
        } | null;
        require: {
            php: string;
        } | null;
        time: string | null;
        version: string;
        homepage: string | null;
    }[]>;
    includesFiles: {
        key: string;
        hash: string | null;
    }[];
    providerPackages: {
        [k: string]: string | null;
    };
    files: {
        key: string;
        hash: string | null;
    }[];
    providersUrl: string | null;
    providersLazyUrl: string | null;
    metadataUrl: string | null;
    includesPackages: Record<string, ReleaseResult | null>;
}, unknown>;
export type RegistryMeta = z.infer<typeof RegistryMeta>;
