import { CSSProperties, ComponentPropsWithoutRef, ElementRef, ForwardedRef, ElementType } from 'react';
/** Text variant and size definitions mapping names to their Tailwind classes. */
export declare const KUMO_TEXT_VARIANTS: {
    readonly variant: {
        readonly heading1: {
            readonly classes: "text-3xl font-semibold";
            readonly description: "Large heading for page titles";
        };
        readonly heading2: {
            readonly classes: "text-2xl font-semibold";
            readonly description: "Medium heading for section titles";
        };
        readonly heading3: {
            readonly classes: "text-lg font-semibold";
            readonly description: "Small heading for subsections";
        };
        readonly body: {
            readonly classes: "text-kumo-default";
            readonly description: "Default body text";
        };
        readonly secondary: {
            readonly classes: "text-kumo-subtle";
            readonly description: "Muted text for secondary information";
        };
        readonly success: {
            readonly classes: "text-kumo-link";
            readonly description: "Success state text";
        };
        readonly error: {
            readonly classes: "text-kumo-danger";
            readonly description: "Error state text";
        };
        readonly mono: {
            readonly classes: "font-mono";
            readonly description: "Monospace text for code";
        };
        readonly "mono-secondary": {
            readonly classes: "font-mono text-kumo-subtle";
            readonly description: "Muted monospace text";
        };
    };
    readonly size: {
        readonly xs: {
            readonly classes: "text-xs";
            readonly description: "Extra small text";
        };
        readonly sm: {
            readonly classes: "text-sm";
            readonly description: "Small text";
        };
        readonly base: {
            readonly classes: "text-base";
            readonly description: "Default text size";
        };
        readonly lg: {
            readonly classes: "text-lg";
            readonly description: "Large text";
        };
    };
};
export declare const KUMO_TEXT_DEFAULT_VARIANTS: {
    readonly variant: "body";
    readonly size: "base";
};
/**
 * KUMO_TEXT_STYLING - Typography metadata for Figma generator
 *
 * This export provides structured styling information extracted from text.tsx
 * for use by the Figma plugin generator. It documents font sizes, weights,
 * colors, and font families used across all Text variants.
 *
 * Source of truth chain:
 * text.tsx (this file) → component-registry.json → text.ts (Figma generator)
 */
export declare const KUMO_TEXT_STYLING: {
    readonly fontSizes: {
        readonly xs: 12;
        readonly sm: 14;
        readonly base: 16;
        readonly lg: 18;
        readonly xl: 20;
        readonly "2xl": 24;
        readonly "3xl": 30;
    };
    readonly fontWeights: {
        readonly normal: 400;
        readonly medium: 500;
        readonly semibold: 600;
    };
    readonly baseColor: "text-kumo-default";
    readonly variantColors: {
        readonly body: "text-kumo-default";
        readonly secondary: "text-kumo-subtle";
        readonly success: "text-kumo-link";
        readonly error: "text-kumo-danger";
        readonly mono: "text-kumo-default";
        readonly "mono-secondary": "text-kumo-subtle";
    };
    readonly fontFamilies: {
        readonly default: "sans-serif";
        readonly mono: "monospace";
    };
};
export type KumoTextVariant = keyof typeof KUMO_TEXT_VARIANTS.variant;
export type KumoTextSize = keyof typeof KUMO_TEXT_VARIANTS.size;
export interface KumoTextVariantsProps {
    variant?: KumoTextVariant;
    size?: KumoTextSize;
}
export declare function textVariants({ variant, size, }?: KumoTextVariantsProps): string;
type Heading = "heading1" | "heading2" | "heading3";
type Copy = "body" | "secondary" | "success" | "error";
type Monospace = "mono" | "mono-secondary";
type TextSize = KumoTextSize;
type TextVariant = KumoTextVariant;
type BaseTextProps = Omit<ComponentPropsWithoutRef<"span">, "className" | "style"> & {
    DANGEROUS_className?: string;
    DANGEROUS_style?: CSSProperties;
    as?: ElementType;
};
type TextPropsInternal<Variant extends TextVariant = "body"> = BaseTextProps & (Variant extends Copy ? {
    variant?: Variant;
    bold?: boolean;
    size?: TextSize;
} : Variant extends Monospace ? {
    variant?: Variant;
    bold?: never;
    size?: "lg";
} : Variant extends Heading ? {
    variant?: Variant;
    bold?: never;
    size?: never;
} : never);
/**
 * Text component props.
 *
 * @example
 * ```tsx
 * <Text variant="heading1">Page Title</Text>
 * <Text variant="body">Default paragraph text.</Text>
 * <Text variant="secondary" size="sm">Muted helper text</Text>
 * <Text variant="error">Something went wrong</Text>
 * <Text variant="mono">console.log("code")</Text>
 * ```
 */
export interface TextProps {
    /**
     * Text style variant. Determines color, font, and weight.
     * - `"heading1"` — Large page title (30px, semibold)
     * - `"heading2"` — Section title (24px, semibold)
     * - `"heading3"` — Subsection title (18px, semibold)
     * - `"body"` — Default body text
     * - `"secondary"` — Muted text for secondary information
     * - `"success"` — Success state text
     * - `"error"` — Error state text
     * - `"mono"` — Monospace text for code
     * - `"mono-secondary"` — Muted monospace text
     * @default "body"
     */
    variant?: KumoTextVariant;
    /**
     * Text size (only applies to body/secondary/success/error variants).
     * - `"xs"` — 12px
     * - `"sm"` — 14px
     * - `"base"` — 16px
     * - `"lg"` — 18px
     * @default "base"
     */
    size?: KumoTextSize;
    /** Whether to use bold font weight (only applies to body variants). */
    bold?: boolean;
    /** The HTML element type to render as (e.g. `"span"`, `"p"`, `"h1"`). Auto-selected based on variant if omitted. */
    as?: ElementType;
    /** Text content. */
    children?: React.ReactNode;
}
export declare const Text: <Variant extends TextVariant = "body">(props: TextPropsInternal<Variant> & {
    ref?: ForwardedRef<ElementRef<"span">>;
}) => React.ReactElement;
export {};
//# sourceMappingURL=text.d.ts.map