import type { Combination, DeepPartial, FlowbiteBoolean, FlowbiteClass, FlowbiteColors, FlowbiteGradientColors, FlowbiteGradientDuoToneColors, FlowbiteSizes } from 'flowbite-angular';
/**
 * Available colors for `ButtonComponent`
 */
export interface ButtonColors extends Pick<FlowbiteColors, 'dark' | 'primary' | 'light' | 'blue' | 'red' | 'green' | 'yellow' | 'purple'> {
    [key: string]: string;
}
/**
 * Available monochrome colors for `ButtonComponent`
 */
export interface ButtonMonochromeColors extends Pick<FlowbiteGradientColors, 'blue' | 'green' | 'cyan' | 'teal' | 'lime' | 'red' | 'pink' | 'purple'> {
    [key: string]: string;
}
/**
 * Available duotone colors for `ButtonComponent`
 */
export type ButtonDuoToneColors = Pick<FlowbiteGradientDuoToneColors, 'purpleToBlue' | 'cyanToBlue' | 'greenToBlue' | 'purpleToPink' | 'pinkToOrange' | 'tealToLime' | 'redToYellow'>;
/**
 * Available sizes for `ButtonComponent`
 */
export interface ButtonSizes extends Pick<FlowbiteSizes, 'xs' | 'sm' | 'md' | 'lg' | 'xl'> {
    [key: string]: string;
}
/**
 * Available fill for `ButtonComponent`
 */
export interface ButtonFill {
    solid: string;
    outline: string;
}
/**
 * Available types for `ButtonComponent`
 */
export interface ButtonTypes {
    default: string;
    span: string;
}
/**
 * Required properties for the class generation of `ButtonComponent`
 */
export interface ButtonProperties {
    color: keyof ButtonColors;
    gradientMonochrome?: keyof ButtonMonochromeColors;
    gradientDuoTone?: keyof ButtonDuoToneColors;
    size: keyof ButtonSizes;
    isPill: keyof FlowbiteBoolean;
    fill: keyof ButtonFill;
    isDisabled: keyof FlowbiteBoolean;
    customStyle: DeepPartial<ButtonTheme>;
}
/**
 * Theme definition for `ButtonComponent`
 */
export interface ButtonTheme {
    root: {
        base: ButtonTypes;
        color: Combination<keyof ButtonColors, keyof ButtonFill, string>;
        gradientMonochrome: ButtonMonochromeColors;
        gradientDuoTone: Combination<keyof ButtonDuoToneColors, keyof ButtonFill, string>;
        size: ButtonSizes;
        isPill: FlowbiteBoolean;
        isDisabled: FlowbiteBoolean;
    };
    span: {
        base: string;
        isPill: FlowbiteBoolean;
        size: ButtonSizes;
    };
}
/**
 * Default theme for `ButtonComponent`
 */
export declare const buttonTheme: ButtonTheme;
/**
 * Generated class definition for `ButtonComponent`
 */
export interface ButtonClass extends FlowbiteClass {
    spanClass: string;
}
