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<z.extendShape<{
    version: z.ZodString;
}, {
    homepage: z.ZodOptional<z.ZodCatch<z.ZodNullable<z.ZodString>>>;
    source: z.ZodOptional<z.ZodCatch<z.ZodNullable<z.ZodObject<{
        url: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        url: string;
    }, {
        url: string;
    }>>>>;
    time: z.ZodOptional<z.ZodCatch<z.ZodNullable<z.ZodString>>>;
    require: z.ZodOptional<z.ZodCatch<z.ZodNullable<z.ZodObject<{
        php: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        php: string;
    }, {
        php: string;
    }>>>>;
}>, "strip", z.ZodTypeAny, {
    source?: {
        url: string;
    } | null | undefined;
    require?: {
        php: string;
    } | null | undefined;
    time?: string | null | undefined;
    homepage?: string | null | undefined;
    version: string;
}, {
    source?: {
        url: string;
    } | null | undefined;
    require?: {
        php: string;
    } | null | undefined;
    time?: string | null | undefined;
    homepage?: string | null | undefined;
    version: string;
}>;
export type ComposerRelease = z.infer<typeof ComposerRelease>;
export declare const ComposerReleases: z.ZodEffects<z.ZodArray<z.ZodCatch<z.ZodNullable<z.ZodObject<z.extendShape<{
    version: z.ZodString;
}, {
    homepage: z.ZodOptional<z.ZodCatch<z.ZodNullable<z.ZodString>>>;
    source: z.ZodOptional<z.ZodCatch<z.ZodNullable<z.ZodObject<{
        url: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        url: string;
    }, {
        url: string;
    }>>>>;
    time: z.ZodOptional<z.ZodCatch<z.ZodNullable<z.ZodString>>>;
    require: z.ZodOptional<z.ZodCatch<z.ZodNullable<z.ZodObject<{
        php: z.ZodString;
    }, "strip", z.ZodTypeAny, {
        php: string;
    }, {
        php: string;
    }>>>>;
}>, "strip", z.ZodTypeAny, {
    source?: {
        url: string;
    } | null | undefined;
    require?: {
        php: string;
    } | null | undefined;
    time?: string | null | undefined;
    homepage?: string | null | undefined;
    version: string;
}, {
    source?: {
        url: string;
    } | null | undefined;
    require?: {
        php: string;
    } | null | undefined;
    time?: string | null | undefined;
    homepage?: string | null | undefined;
    version: string;
}>>>, "many">, {
    source?: {
        url: string;
    } | null | undefined;
    require?: {
        php: string;
    } | null | undefined;
    time?: string | null | undefined;
    homepage?: string | null | undefined;
    version: string;
}[], ({
    source?: {
        url: string;
    } | null | undefined;
    require?: {
        php: string;
    } | null | undefined;
    time?: string | null | undefined;
    homepage?: string | null | undefined;
    version: string;
} | null | undefined)[]>;
export type ComposerReleases = z.infer<typeof ComposerReleases>;
export declare const ComposerPackagesResponse: z.ZodObject<{
    packages: z.ZodRecord<z.ZodString, z.ZodUnknown>;
}, "strip", z.ZodTypeAny, {
    packages: Record<string, unknown>;
}, {
    packages: Record<string, unknown>;
}>;
export declare function parsePackagesResponse(packageName: string, packagesResponse: unknown): ComposerReleases;
export declare function parsePackagesResponses(packageName: string, packagesResponses: unknown[]): ReleaseResult | null;
