/**
 * Validate a design configuration for accessibility sanity checks.
 * Currently validates color contrast for primary buttons and base surface text
 * in both light and dark themes.
 *
 * @param {object} designConfig - A full or partial PDS config object
 * @param {object} [options]
 * @param {number} [options.minContrast=4.5] - Minimum contrast ratio for normal text
 * @returns {{ ok: boolean, issues: Array<{path:string, message:string, ratio:number, min:number, context?:string}> }}
 */
export function validateDesign(designConfig?: object, options?: {
    minContrast?: number;
}): {
    ok: boolean;
    issues: Array<{
        path: string;
        message: string;
        ratio: number;
        min: number;
        context?: string;
    }>;
};
/**
 * Validate multiple design configurations at once.
 * Useful for build-time enforcement of preset compliance.
 *
 * @param {Array<object>} designs - Array of design configs; items may include an optional `name` property.
 * @param {object} [options] - Options forwarded to validateDesign (e.g., { minContrast })
 * @returns {{ ok: boolean, results: Array<{ name?: string, ok: boolean, issues: Array<{path:string, message:string, ratio:number, min:number, context?:string}> }> }}
 */
export function validateDesigns(designs?: Array<object>, options?: object): {
    ok: boolean;
    results: Array<{
        name?: string;
        ok: boolean;
        issues: Array<{
            path: string;
            message: string;
            ratio: number;
            min: number;
            context?: string;
        }>;
    }>;
};
/**
 * Generator - A JS-config-first design system
 * Generates comprehensive CSS variables and styles from a minimal configuration
 */
export class Generator {
    static "__#private@#instance": any;
    static get instance(): any;
    constructor(options?: {});
    options: {
        debug: boolean;
    };
    tokens: {
        colors: {
            primary: {
                50: string;
                100: string;
                200: string;
                300: string;
                400: string;
                500: any;
                600: string;
                700: string;
                800: string;
                900: string;
            };
            secondary: {
                50: string;
                100: string;
                200: string;
                300: string;
                400: string;
                500: any;
                600: string;
                700: string;
                800: string;
                900: string;
            };
            accent: {
                50: string;
                100: string;
                200: string;
                300: string;
                400: string;
                500: any;
                600: string;
                700: string;
                800: string;
                900: string;
            };
            success: {
                50: string;
                100: string;
                200: string;
                300: string;
                400: string;
                500: any;
                600: string;
                700: string;
                800: string;
                900: string;
            };
            warning: {
                50: string;
                100: string;
                200: string;
                300: string;
                400: string;
                500: any;
                600: string;
                700: string;
                800: string;
                900: string;
            };
            danger: {
                50: string;
                100: string;
                200: string;
                300: string;
                400: string;
                500: any;
                600: string;
                700: string;
                800: string;
                900: string;
            };
            info: {
                50: string;
                100: string;
                200: string;
                300: string;
                400: string;
                500: any;
                600: string;
                700: string;
                800: string;
                900: string;
            };
            gray: {
                50: string;
                100: string;
                200: string;
                300: string;
                400: string;
                500: any;
                600: string;
                700: string;
                800: string;
                900: string;
            };
            surface: {
                base: any;
                subtle: string;
                elevated: string;
                sunken: string;
                overlay: string;
                inverse: string;
                hover: string;
            };
        };
        spacing: string;
        radius: {
            none: string;
            xs: string;
            sm: string;
            md: string;
            lg: string;
            xl: string;
            full: string;
        };
        borderWidths: {
            hairline: string;
            thin: string;
            medium: string;
            thick: string;
        };
        typography: {
            fontFamily: {
                headings: any;
                body: any;
                mono: any;
            };
            fontSize: {
                xs: string;
                sm: string;
                base: string;
                lg: string;
                xl: string;
                "2xl": string;
                "3xl": string;
                "4xl": string;
            };
            fontWeight: {
                light: any;
                normal: any;
                medium: any;
                semibold: any;
                bold: any;
            };
            lineHeight: {
                tight: any;
                normal: any;
                relaxed: any;
            };
        };
        shadows: {
            sm: string;
            base: string;
            md: string;
            lg: string;
            xl: string;
            inner: string;
        };
        darkShadows: {
            sm: string;
            base: string;
            md: string;
            lg: string;
            xl: string;
            inner: string;
        };
        layout: {
            maxWidth: any;
            maxWidthSm: any;
            maxWidthMd: any;
            maxWidthLg: any;
            maxWidthXl: any;
            minHeight: string;
            containerPadding: any;
            breakpoints: {
                sm: any;
                md: any;
                lg: any;
                xl: any;
            };
            pageMargin: string;
            sectionGap: string;
            containerGap: string;
            heroSpacing: string;
            footerSpacing: string;
        };
        transitions: {
            fast: string;
            normal: string;
            slow: string;
        };
        zIndex: {
            dropdown: any;
            sticky: any;
            fixed: any;
            modal: any;
            drawer: any;
            popover: any;
            tooltip: any;
            notification: any;
        };
        icons: {
            set: any;
            weight: any;
            defaultSize: string;
            sizes: {
                [k: string]: string;
            };
            spritePath: any;
            externalPath: any;
        };
    };
    generateTokens(): {
        colors: {
            primary: {
                50: string;
                100: string;
                200: string;
                300: string;
                400: string;
                500: any;
                600: string;
                700: string;
                800: string;
                900: string;
            };
            secondary: {
                50: string;
                100: string;
                200: string;
                300: string;
                400: string;
                500: any;
                600: string;
                700: string;
                800: string;
                900: string;
            };
            accent: {
                50: string;
                100: string;
                200: string;
                300: string;
                400: string;
                500: any;
                600: string;
                700: string;
                800: string;
                900: string;
            };
            success: {
                50: string;
                100: string;
                200: string;
                300: string;
                400: string;
                500: any;
                600: string;
                700: string;
                800: string;
                900: string;
            };
            warning: {
                50: string;
                100: string;
                200: string;
                300: string;
                400: string;
                500: any;
                600: string;
                700: string;
                800: string;
                900: string;
            };
            danger: {
                50: string;
                100: string;
                200: string;
                300: string;
                400: string;
                500: any;
                600: string;
                700: string;
                800: string;
                900: string;
            };
            info: {
                50: string;
                100: string;
                200: string;
                300: string;
                400: string;
                500: any;
                600: string;
                700: string;
                800: string;
                900: string;
            };
            gray: {
                50: string;
                100: string;
                200: string;
                300: string;
                400: string;
                500: any;
                600: string;
                700: string;
                800: string;
                900: string;
            };
            surface: {
                base: any;
                subtle: string;
                elevated: string;
                sunken: string;
                overlay: string;
                inverse: string;
                hover: string;
            };
        };
        spacing: string;
        radius: {
            none: string;
            xs: string;
            sm: string;
            md: string;
            lg: string;
            xl: string;
            full: string;
        };
        borderWidths: {
            hairline: string;
            thin: string;
            medium: string;
            thick: string;
        };
        typography: {
            fontFamily: {
                headings: any;
                body: any;
                mono: any;
            };
            fontSize: {
                xs: string;
                sm: string;
                base: string;
                lg: string;
                xl: string;
                "2xl": string;
                "3xl": string;
                "4xl": string;
            };
            fontWeight: {
                light: any;
                normal: any;
                medium: any;
                semibold: any;
                bold: any;
            };
            lineHeight: {
                tight: any;
                normal: any;
                relaxed: any;
            };
        };
        shadows: {
            sm: string;
            base: string;
            md: string;
            lg: string;
            xl: string;
            inner: string;
        };
        darkShadows: {
            sm: string;
            base: string;
            md: string;
            lg: string;
            xl: string;
            inner: string;
        };
        layout: {
            maxWidth: any;
            maxWidthSm: any;
            maxWidthMd: any;
            maxWidthLg: any;
            maxWidthXl: any;
            minHeight: string;
            containerPadding: any;
            breakpoints: {
                sm: any;
                md: any;
                lg: any;
                xl: any;
            };
            pageMargin: string;
            sectionGap: string;
            containerGap: string;
            heroSpacing: string;
            footerSpacing: string;
        };
        transitions: {
            fast: string;
            normal: string;
            slow: string;
        };
        zIndex: {
            dropdown: any;
            sticky: any;
            fixed: any;
            modal: any;
            drawer: any;
            popover: any;
            tooltip: any;
            notification: any;
        };
        icons: {
            set: any;
            weight: any;
            defaultSize: string;
            sizes: {
                [k: string]: string;
            };
            spritePath: any;
            externalPath: any;
        };
    };
    /**
     * Generate spacing tokens based on the provided configuration.
     * @param {Object} spatialConfig
     * @returns { String } CSS spacing tokens
     */
    generateSpacingTokens(spatialConfig: any): string;
    generateTypographyTokens(typographyConfig: any): {
        fontFamily: {
            headings: any;
            body: any;
            mono: any;
        };
        fontSize: {
            xs: string;
            sm: string;
            base: string;
            lg: string;
            xl: string;
            "2xl": string;
            "3xl": string;
            "4xl": string;
        };
        fontWeight: {
            light: any;
            normal: any;
            medium: any;
            semibold: any;
            bold: any;
        };
        lineHeight: {
            tight: any;
            normal: any;
            relaxed: any;
        };
    };
    getTokens(): {
        colors: {
            primary: {
                50: string;
                100: string;
                200: string;
                300: string;
                400: string;
                500: any;
                600: string;
                700: string;
                800: string;
                900: string;
            };
            secondary: {
                50: string;
                100: string;
                200: string;
                300: string;
                400: string;
                500: any;
                600: string;
                700: string;
                800: string;
                900: string;
            };
            accent: {
                50: string;
                100: string;
                200: string;
                300: string;
                400: string;
                500: any;
                600: string;
                700: string;
                800: string;
                900: string;
            };
            success: {
                50: string;
                100: string;
                200: string;
                300: string;
                400: string;
                500: any;
                600: string;
                700: string;
                800: string;
                900: string;
            };
            warning: {
                50: string;
                100: string;
                200: string;
                300: string;
                400: string;
                500: any;
                600: string;
                700: string;
                800: string;
                900: string;
            };
            danger: {
                50: string;
                100: string;
                200: string;
                300: string;
                400: string;
                500: any;
                600: string;
                700: string;
                800: string;
                900: string;
            };
            info: {
                50: string;
                100: string;
                200: string;
                300: string;
                400: string;
                500: any;
                600: string;
                700: string;
                800: string;
                900: string;
            };
            gray: {
                50: string;
                100: string;
                200: string;
                300: string;
                400: string;
                500: any;
                600: string;
                700: string;
                800: string;
                900: string;
            };
            surface: {
                base: any;
                subtle: string;
                elevated: string;
                sunken: string;
                overlay: string;
                inverse: string;
                hover: string;
            };
        };
        spacing: string;
        radius: {
            none: string;
            xs: string;
            sm: string;
            md: string;
            lg: string;
            xl: string;
            full: string;
        };
        borderWidths: {
            hairline: string;
            thin: string;
            medium: string;
            thick: string;
        };
        typography: {
            fontFamily: {
                headings: any;
                body: any;
                mono: any;
            };
            fontSize: {
                xs: string;
                sm: string;
                base: string;
                lg: string;
                xl: string;
                "2xl": string;
                "3xl": string;
                "4xl": string;
            };
            fontWeight: {
                light: any;
                normal: any;
                medium: any;
                semibold: any;
                bold: any;
            };
            lineHeight: {
                tight: any;
                normal: any;
                relaxed: any;
            };
        };
        shadows: {
            sm: string;
            base: string;
            md: string;
            lg: string;
            xl: string;
            inner: string;
        };
        darkShadows: {
            sm: string;
            base: string;
            md: string;
            lg: string;
            xl: string;
            inner: string;
        };
        layout: {
            maxWidth: any;
            maxWidthSm: any;
            maxWidthMd: any;
            maxWidthLg: any;
            maxWidthXl: any;
            minHeight: string;
            containerPadding: any;
            breakpoints: {
                sm: any;
                md: any;
                lg: any;
                xl: any;
            };
            pageMargin: string;
            sectionGap: string;
            containerGap: string;
            heroSpacing: string;
            footerSpacing: string;
        };
        transitions: {
            fast: string;
            normal: string;
            slow: string;
        };
        zIndex: {
            dropdown: any;
            sticky: any;
            fixed: any;
            modal: any;
            drawer: any;
            popover: any;
            tooltip: any;
            notification: any;
        };
        icons: {
            set: any;
            weight: any;
            defaultSize: string;
            sizes: {
                [k: string]: string;
            };
            spritePath: any;
            externalPath: any;
        };
    };
    exportCSS(): string;
    get tokensCSS(): any;
    get primitivesCSS(): any;
    get componentsCSS(): any;
    get utilitiesCSS(): any;
    get layeredCSS(): string;
    /**
     * Get a complete compiled representation of the design system state.
     * This provides structured access to all generated tokens, scales, layers, and metadata.
     * Linked to ontology and enums for introspection and tooling.
     *
     * @returns {Object} Compiled design system state with tokens, layers, metadata, and references
     */
    get compiled(): any;
    get tokensStylesheet(): any;
    get primitivesStylesheet(): any;
    get componentsStylesheet(): any;
    get utilitiesStylesheet(): any;
    /**
     * Generate CSS module files for export
     * Returns object with filename => content
     */
    getCSSModules(): {
        "pds-tokens.css.js": string;
        "pds-primitives.css.js": string;
        "pds-components.css.js": string;
        "pds-utilities.css.js": string;
        "pds-styles.css.js": string;
    };
    #private;
}
//# sourceMappingURL=pds-generator.d.ts.map