import { z } from "zod";
export declare const RuleConfigSchema: z.ZodObject<{
    name: z.ZodString;
    content: z.ZodString;
    description: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    name: string;
    content: string;
    description?: string | undefined;
}, {
    name: string;
    content: string;
    description?: string | undefined;
}>;
export declare const RuleGeneratorOptionsSchema: z.ZodOptional<z.ZodObject<{
    description: z.ZodOptional<z.ZodString>;
    isGlobal: z.ZodOptional<z.ZodBoolean>;
    alwaysApply: z.ZodOptional<z.ZodBoolean>;
    globs: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
    debug: z.ZodOptional<z.ZodBoolean>;
}, "strip", z.ZodTypeAny, {
    description?: string | undefined;
    isGlobal?: boolean | undefined;
    alwaysApply?: boolean | undefined;
    globs?: string | string[] | undefined;
    debug?: boolean | undefined;
}, {
    description?: string | undefined;
    isGlobal?: boolean | undefined;
    alwaysApply?: boolean | undefined;
    globs?: string | string[] | undefined;
    debug?: boolean | undefined;
}>>;
export declare const StoredRuleConfigSchema: z.ZodObject<{
    name: z.ZodString;
    content: z.ZodString;
    description: z.ZodOptional<z.ZodString>;
    metadata: z.ZodOptional<z.ZodObject<{
        description: z.ZodOptional<z.ZodString>;
        isGlobal: z.ZodOptional<z.ZodBoolean>;
        alwaysApply: z.ZodOptional<z.ZodBoolean>;
        globs: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
        debug: z.ZodOptional<z.ZodBoolean>;
    }, "strip", z.ZodTypeAny, {
        description?: string | undefined;
        isGlobal?: boolean | undefined;
        alwaysApply?: boolean | undefined;
        globs?: string | string[] | undefined;
        debug?: boolean | undefined;
    }, {
        description?: string | undefined;
        isGlobal?: boolean | undefined;
        alwaysApply?: boolean | undefined;
        globs?: string | string[] | undefined;
        debug?: boolean | undefined;
    }>>;
}, "strip", z.ZodTypeAny, {
    name: string;
    content: string;
    description?: string | undefined;
    metadata?: {
        description?: string | undefined;
        isGlobal?: boolean | undefined;
        alwaysApply?: boolean | undefined;
        globs?: string | string[] | undefined;
        debug?: boolean | undefined;
    } | undefined;
}, {
    name: string;
    content: string;
    description?: string | undefined;
    metadata?: {
        description?: string | undefined;
        isGlobal?: boolean | undefined;
        alwaysApply?: boolean | undefined;
        globs?: string | string[] | undefined;
        debug?: boolean | undefined;
    } | undefined;
}>;
export declare const VibeRulesSchema: z.ZodArray<z.ZodObject<{
    name: z.ZodString;
    content: z.ZodString;
    description: z.ZodOptional<z.ZodString>;
}, "strip", z.ZodTypeAny, {
    name: string;
    content: string;
    description?: string | undefined;
}, {
    name: string;
    content: string;
    description?: string | undefined;
}>, "many">;
export declare const PackageRuleObjectSchema: z.ZodObject<{
    name: z.ZodString;
    rule: z.ZodString;
    description: z.ZodOptional<z.ZodString>;
    alwaysApply: z.ZodOptional<z.ZodBoolean>;
    globs: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
}, "strip", z.ZodTypeAny, {
    name: string;
    rule: string;
    description?: string | undefined;
    alwaysApply?: boolean | undefined;
    globs?: string | string[] | undefined;
}, {
    name: string;
    rule: string;
    description?: string | undefined;
    alwaysApply?: boolean | undefined;
    globs?: string | string[] | undefined;
}>;
export declare const PackageRuleItemSchema: z.ZodUnion<[z.ZodString, z.ZodObject<{
    name: z.ZodString;
    rule: z.ZodString;
    description: z.ZodOptional<z.ZodString>;
    alwaysApply: z.ZodOptional<z.ZodBoolean>;
    globs: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
}, "strip", z.ZodTypeAny, {
    name: string;
    rule: string;
    description?: string | undefined;
    alwaysApply?: boolean | undefined;
    globs?: string | string[] | undefined;
}, {
    name: string;
    rule: string;
    description?: string | undefined;
    alwaysApply?: boolean | undefined;
    globs?: string | string[] | undefined;
}>]>;
export declare const VibePackageRulesSchema: z.ZodArray<z.ZodUnion<[z.ZodString, z.ZodObject<{
    name: z.ZodString;
    rule: z.ZodString;
    description: z.ZodOptional<z.ZodString>;
    alwaysApply: z.ZodOptional<z.ZodBoolean>;
    globs: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodArray<z.ZodString, "many">]>>;
}, "strip", z.ZodTypeAny, {
    name: string;
    rule: string;
    description?: string | undefined;
    alwaysApply?: boolean | undefined;
    globs?: string | string[] | undefined;
}, {
    name: string;
    rule: string;
    description?: string | undefined;
    alwaysApply?: boolean | undefined;
    globs?: string | string[] | undefined;
}>]>, "many">;
export type RuleConfig = z.infer<typeof RuleConfigSchema>;
export type StoredRuleConfig = z.infer<typeof StoredRuleConfigSchema>;
export type RuleGeneratorOptions = z.infer<typeof RuleGeneratorOptionsSchema>;
export type PackageRuleObject = z.infer<typeof PackageRuleObjectSchema>;
export type PackageRuleItem = z.infer<typeof PackageRuleItemSchema>;
