interface IDefineCssVar {
    default?: string;
    desc?: string;
}
interface IDefineCssVars {
    [name: string]: IDefineCssVar;
}
export declare class CssVar implements IDefineCssVar {
    name: string;
    default: string | undefined;
    desc: string | undefined;
    constructor(opts: {
        name: string;
        default?: string;
        desc?: string;
    });
    get consume(): string;
    get consumeStyled(): (props: any) => string;
}
export interface ICssVars {
    [name: string]: CssVar;
}
declare type GetCssVars<Definition extends IDefineCssVars> = {
    [Name in keyof Definition]: CssVar;
};
declare type IStyleObjecy<CssVars extends ICssVars> = {
    [Name in keyof CssVars]: string | undefined;
};
declare type OverWriteCssVars<CssVars extends ICssVars> = {
    [Name in keyof CssVars]?: string;
};
declare type GetOverwritten<CssVars extends ICssVars, Overwrite extends OverWriteCssVars<CssVars>> = {
    [Name in keyof CssVars]: CssVar;
} & {
    [Name in keyof Overwrite]: CssVar;
};
export declare class CssVarTheme<CssVars extends ICssVars> {
    private _vars;
    private constructor();
    static create<Definition extends IDefineCssVars>(definitions: Definition): CssVarTheme<GetCssVars<Definition>>;
    overwrite<Overwrite extends OverWriteCssVars<CssVars>>(overwrite: OverWriteCssVars<CssVars> & NoExtraProperties<OverWriteCssVars<CssVars>, Overwrite>): CssVarTheme<GetOverwritten<CssVars, Overwrite>>;
    /**
     * 主题变量集合
     */
    get vars(): CssVars;
    /**
     * 产生主题变量定义，即name->value映射
     */
    values(): IStyleObjecy<CssVars>;
}
declare type Impossible<K extends keyof any> = {
    [P in K]: never;
};
declare type NoExtraProperties<T, U extends T = T> = U & Impossible<Exclude<keyof U, keyof T>>;
export {};
//# sourceMappingURL=define-css-var.d.ts.map