import { z } from 'zod';
/**
 * Card System Types and Schemas
 *
 * Defines the type-safe configuration for site card styles.
 * Similar to button system but focused on card styling (background, spacing, shadow, corners).
 */
export type Shadow = {
    elevation: "none" | "low" | "medium" | "high";
    softness: "crisp" | "soft" | "hard" | null;
    position: "bottom" | "bottom-right";
};
export type CardSpacing = 'none' | 'compact' | 'cozy' | 'medium' | 'comfortable' | 'spacious';
export type GradientDirection = 'to-r' | 'to-l' | 'to-t' | 'to-b' | 'to-tr' | 'to-tl' | 'to-br' | 'to-bl';
export type CardBackground = {
    type: 'solid';
    colorToken: string;
} | {
    type: 'gradient';
    fromToken: string;
    toToken: string;
    direction: GradientDirection;
} | {
    type: 'transparent';
};
export interface CardBorder {
    widthClass: string;
    colorToken: string;
}
export declare const cardSpacingSchema: z.ZodEnum<{
    none: "none";
    compact: "compact";
    medium: "medium";
    spacious: "spacious";
    comfortable: "comfortable";
    cozy: "cozy";
}>;
export declare const gradientDirectionSchema: z.ZodEnum<{
    "to-r": "to-r";
    "to-l": "to-l";
    "to-t": "to-t";
    "to-b": "to-b";
    "to-tr": "to-tr";
    "to-tl": "to-tl";
    "to-br": "to-br";
    "to-bl": "to-bl";
}>;
export declare const cardBackgroundSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
    type: z.ZodLiteral<"solid">;
    colorToken: z.ZodString;
}, z.core.$strip>, z.ZodObject<{
    type: z.ZodLiteral<"gradient">;
    fromToken: z.ZodString;
    toToken: z.ZodString;
    direction: z.ZodEnum<{
        "to-r": "to-r";
        "to-l": "to-l";
        "to-t": "to-t";
        "to-b": "to-b";
        "to-tr": "to-tr";
        "to-tl": "to-tl";
        "to-br": "to-br";
        "to-bl": "to-bl";
    }>;
}, z.core.$strip>, z.ZodObject<{
    type: z.ZodLiteral<"transparent">;
}, z.core.$strip>], "type">;
export declare const cardBorderSchema: z.ZodObject<{
    widthClass: z.ZodString;
    colorToken: z.ZodString;
}, z.core.$strip>;
export declare const cardVariantSchema: z.ZodObject<{
    id: z.ZodString;
    name: z.ZodString;
    enabled: z.ZodBoolean;
    priority: z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>]>;
    background: z.ZodDiscriminatedUnion<[z.ZodObject<{
        type: z.ZodLiteral<"solid">;
        colorToken: z.ZodString;
    }, z.core.$strip>, z.ZodObject<{
        type: z.ZodLiteral<"gradient">;
        fromToken: z.ZodString;
        toToken: z.ZodString;
        direction: z.ZodEnum<{
            "to-r": "to-r";
            "to-l": "to-l";
            "to-t": "to-t";
            "to-b": "to-b";
            "to-tr": "to-tr";
            "to-tl": "to-tl";
            "to-br": "to-br";
            "to-bl": "to-bl";
        }>;
    }, z.core.$strip>, z.ZodObject<{
        type: z.ZodLiteral<"transparent">;
    }, z.core.$strip>], "type">;
    spacing: z.ZodEnum<{
        none: "none";
        compact: "compact";
        medium: "medium";
        spacious: "spacious";
        comfortable: "comfortable";
        cozy: "cozy";
    }>;
    shadow: z.ZodOptional<z.ZodObject<{
        elevation: z.ZodEnum<{
            none: "none";
            low: "low";
            high: "high";
            medium: "medium";
        }>;
        softness: z.ZodNullable<z.ZodEnum<{
            crisp: "crisp";
            soft: "soft";
            hard: "hard";
        }>>;
        position: z.ZodDefault<z.ZodEnum<{
            bottom: "bottom";
            "bottom-right": "bottom-right";
        }>>;
    }, z.core.$strip>>;
    corners: z.ZodOptional<z.ZodEnum<{
        soft: "soft";
        square: "square";
        rounded: "rounded";
        pill: "pill";
    }>>;
    border: z.ZodOptional<z.ZodObject<{
        widthClass: z.ZodString;
        colorToken: z.ZodString;
    }, z.core.$strip>>;
}, z.core.$strip>;
export declare const cardSystemSchema: z.ZodObject<{
    variants: z.ZodArray<z.ZodObject<{
        id: z.ZodString;
        name: z.ZodString;
        enabled: z.ZodBoolean;
        priority: z.ZodUnion<readonly [z.ZodLiteral<1>, z.ZodLiteral<2>, z.ZodLiteral<3>]>;
        background: z.ZodDiscriminatedUnion<[z.ZodObject<{
            type: z.ZodLiteral<"solid">;
            colorToken: z.ZodString;
        }, z.core.$strip>, z.ZodObject<{
            type: z.ZodLiteral<"gradient">;
            fromToken: z.ZodString;
            toToken: z.ZodString;
            direction: z.ZodEnum<{
                "to-r": "to-r";
                "to-l": "to-l";
                "to-t": "to-t";
                "to-b": "to-b";
                "to-tr": "to-tr";
                "to-tl": "to-tl";
                "to-br": "to-br";
                "to-bl": "to-bl";
            }>;
        }, z.core.$strip>, z.ZodObject<{
            type: z.ZodLiteral<"transparent">;
        }, z.core.$strip>], "type">;
        spacing: z.ZodEnum<{
            none: "none";
            compact: "compact";
            medium: "medium";
            spacious: "spacious";
            comfortable: "comfortable";
            cozy: "cozy";
        }>;
        shadow: z.ZodOptional<z.ZodObject<{
            elevation: z.ZodEnum<{
                none: "none";
                low: "low";
                high: "high";
                medium: "medium";
            }>;
            softness: z.ZodNullable<z.ZodEnum<{
                crisp: "crisp";
                soft: "soft";
                hard: "hard";
            }>>;
            position: z.ZodDefault<z.ZodEnum<{
                bottom: "bottom";
                "bottom-right": "bottom-right";
            }>>;
        }, z.core.$strip>>;
        corners: z.ZodOptional<z.ZodEnum<{
            soft: "soft";
            square: "square";
            rounded: "rounded";
            pill: "pill";
        }>>;
        border: z.ZodOptional<z.ZodObject<{
            widthClass: z.ZodString;
            colorToken: z.ZodString;
        }, z.core.$strip>>;
    }, z.core.$strip>>;
}, z.core.$strip>;
export interface CardVariant {
    id: string;
    name: string;
    enabled: boolean;
    priority: 1 | 2 | 3;
    background: CardBackground;
    spacing: CardSpacing;
    shadow?: Shadow;
    corners?: 'square' | 'soft' | 'rounded' | 'pill';
    border?: CardBorder;
}
export interface CardSystem {
    variants: CardVariant[];
}
