import { z } from 'zod';
import type { PackageDependency } from '../../types';
import type { Ctx } from '../context';
export declare const RuleToMavenPackageDep: z.ZodUnion<[z.ZodEffects<z.ZodObject<z.objectUtil.extendShape<{
    type: z.ZodLiteral<"record">;
    children: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodAny>, Record<string, {
        type: "string";
        value: string;
        isComplete: true;
    } | {
        type: "boolean";
        value: boolean;
        isComplete: true;
    } | {
        type: "array";
        items: ({
            type: "string";
            value: string;
            isComplete: true;
        } | {
            type: "boolean";
            value: boolean;
            isComplete: true;
        })[];
        isComplete: boolean;
    }>, Record<string, any>>;
    isComplete: z.ZodBoolean;
}, {
    children: z.ZodObject<{
        rule: z.ZodObject<z.objectUtil.extendShape<{
            type: z.ZodLiteral<"string">;
            value: z.ZodString;
            isComplete: z.ZodLiteral<true>;
        }, {
            value: z.ZodLiteral<string>;
        }>, "strip", z.ZodTypeAny, {
            type: "string";
            value: string;
            isComplete: true;
        }, {
            type: "string";
            value: string;
            isComplete: true;
        }>;
        artifact: z.ZodObject<{
            type: z.ZodLiteral<"string">;
            value: z.ZodString;
            isComplete: z.ZodLiteral<true>;
        }, "strip", z.ZodTypeAny, {
            type: "string";
            value: string;
            isComplete: true;
        }, {
            type: "string";
            value: string;
            isComplete: true;
        }>;
        group: z.ZodObject<{
            type: z.ZodLiteral<"string">;
            value: z.ZodString;
            isComplete: z.ZodLiteral<true>;
        }, "strip", z.ZodTypeAny, {
            type: "string";
            value: string;
            isComplete: true;
        }, {
            type: "string";
            value: string;
            isComplete: true;
        }>;
        version: z.ZodObject<{
            type: z.ZodLiteral<"string">;
            value: z.ZodString;
            isComplete: z.ZodLiteral<true>;
        }, "strip", z.ZodTypeAny, {
            type: "string";
            value: string;
            isComplete: true;
        }, {
            type: "string";
            value: string;
            isComplete: true;
        }>;
    }, "strip", z.ZodTypeAny, {
        group: {
            type: "string";
            value: string;
            isComplete: true;
        };
        version: {
            type: "string";
            value: string;
            isComplete: true;
        };
        artifact: {
            type: "string";
            value: string;
            isComplete: true;
        };
        rule: {
            type: "string";
            value: string;
            isComplete: true;
        };
    }, {
        group: {
            type: "string";
            value: string;
            isComplete: true;
        };
        version: {
            type: "string";
            value: string;
            isComplete: true;
        };
        artifact: {
            type: "string";
            value: string;
            isComplete: true;
        };
        rule: {
            type: "string";
            value: string;
            isComplete: true;
        };
    }>;
}>, "strip", z.ZodTypeAny, {
    type: "record";
    children: {
        group: {
            type: "string";
            value: string;
            isComplete: true;
        };
        version: {
            type: "string";
            value: string;
            isComplete: true;
        };
        artifact: {
            type: "string";
            value: string;
            isComplete: true;
        };
        rule: {
            type: "string";
            value: string;
            isComplete: true;
        };
    };
    isComplete: boolean;
}, {
    type: "record";
    children: {
        group: {
            type: "string";
            value: string;
            isComplete: true;
        };
        version: {
            type: "string";
            value: string;
            isComplete: true;
        };
        artifact: {
            type: "string";
            value: string;
            isComplete: true;
        };
        rule: {
            type: "string";
            value: string;
            isComplete: true;
        };
    };
    isComplete: boolean;
}>, PackageDependency<Record<string, any>>[], {
    type: "record";
    children: {
        group: {
            type: "string";
            value: string;
            isComplete: true;
        };
        version: {
            type: "string";
            value: string;
            isComplete: true;
        };
        artifact: {
            type: "string";
            value: string;
            isComplete: true;
        };
        rule: {
            type: "string";
            value: string;
            isComplete: true;
        };
    };
    isComplete: boolean;
}>, z.ZodEffects<z.ZodObject<z.objectUtil.extendShape<{
    type: z.ZodLiteral<"record">;
    children: z.ZodEffects<z.ZodRecord<z.ZodString, z.ZodAny>, Record<string, {
        type: "string";
        value: string;
        isComplete: true;
    } | {
        type: "boolean";
        value: boolean;
        isComplete: true;
    } | {
        type: "array";
        items: ({
            type: "string";
            value: string;
            isComplete: true;
        } | {
            type: "boolean";
            value: boolean;
            isComplete: true;
        })[];
        isComplete: boolean;
    }>, Record<string, any>>;
    isComplete: z.ZodBoolean;
}, {
    children: z.ZodObject<{
        rule: z.ZodObject<z.objectUtil.extendShape<{
            type: z.ZodLiteral<"string">;
            value: z.ZodString;
            isComplete: z.ZodLiteral<true>;
        }, {
            value: z.ZodLiteral<string>;
        }>, "strip", z.ZodTypeAny, {
            type: "string";
            value: string;
            isComplete: true;
        }, {
            type: "string";
            value: string;
            isComplete: true;
        }>;
        artifacts: z.ZodEffects<z.ZodObject<{
            type: z.ZodLiteral<"array">;
            items: z.ZodEffects<z.ZodArray<z.ZodAny, "many">, {
                type: "string";
                value: string;
                isComplete: true;
            }[], any[]>;
            isComplete: z.ZodBoolean;
        }, "strip", z.ZodTypeAny, {
            type: "array";
            items: {
                type: "string";
                value: string;
                isComplete: true;
            }[];
            isComplete: boolean;
        }, {
            type: "array";
            items: any[];
            isComplete: boolean;
        }>, {
            group: string;
            version: string;
            artifact: string;
        }[], {
            type: "array";
            items: any[];
            isComplete: boolean;
        }>;
        repositories: z.ZodObject<{
            type: z.ZodLiteral<"array">;
            items: z.ZodEffects<z.ZodArray<z.ZodAny, "many">, {
                type: "string";
                value: string;
                isComplete: true;
            }[], any[]>;
            isComplete: z.ZodBoolean;
        }, "strip", z.ZodTypeAny, {
            type: "array";
            items: {
                type: "string";
                value: string;
                isComplete: true;
            }[];
            isComplete: boolean;
        }, {
            type: "array";
            items: any[];
            isComplete: boolean;
        }>;
    }, "strip", z.ZodTypeAny, {
        repositories: {
            type: "array";
            items: {
                type: "string";
                value: string;
                isComplete: true;
            }[];
            isComplete: boolean;
        };
        rule: {
            type: "string";
            value: string;
            isComplete: true;
        };
        artifacts: {
            group: string;
            version: string;
            artifact: string;
        }[];
    }, {
        repositories: {
            type: "array";
            items: any[];
            isComplete: boolean;
        };
        rule: {
            type: "string";
            value: string;
            isComplete: true;
        };
        artifacts: {
            type: "array";
            items: any[];
            isComplete: boolean;
        };
    }>;
}>, "strip", z.ZodTypeAny, {
    type: "record";
    children: {
        repositories: {
            type: "array";
            items: {
                type: "string";
                value: string;
                isComplete: true;
            }[];
            isComplete: boolean;
        };
        rule: {
            type: "string";
            value: string;
            isComplete: true;
        };
        artifacts: {
            group: string;
            version: string;
            artifact: string;
        }[];
    };
    isComplete: boolean;
}, {
    type: "record";
    children: {
        repositories: {
            type: "array";
            items: any[];
            isComplete: boolean;
        };
        rule: {
            type: "string";
            value: string;
            isComplete: true;
        };
        artifacts: {
            type: "array";
            items: any[];
            isComplete: boolean;
        };
    };
    isComplete: boolean;
}>, PackageDependency<Record<string, any>>[], {
    type: "record";
    children: {
        repositories: {
            type: "array";
            items: any[];
            isComplete: boolean;
        };
        rule: {
            type: "string";
            value: string;
            isComplete: true;
        };
        artifacts: {
            type: "array";
            items: any[];
            isComplete: boolean;
        };
    };
    isComplete: boolean;
}>]>;
export declare function fillRegistryUrls(packageDeps: PackageDependency[][]): PackageDependency[];
export declare const mavenRules: import("good-enough-parser/dist/cjs/query/builder").SeqBuilder<Ctx, import("good-enough-parser/dist/cjs/parser").Tree>;
