/// <reference types="react" />
export interface RightItemsStyleProps {
    buttonBackgroundColor?: string;
    textColor?: string;
    resetButtonBackgroundColor?: string;
    resetButtonTextColor?: string;
    isDoneButtonFollowTheme?: boolean;
    doneButtonBackgroundColor?: string;
    doneButtonTextColor?: string;
}
export declare type ItemValue = string | number;
export interface Item {
    value: ItemValue;
    label: React.ReactNode;
    disabled: boolean;
    type: 'text' | 'primary';
    style?: React.CSSProperties;
    size?: number;
}
export interface KeyboardProps {
    className?: string;
    style?: React.CSSProperties;
    onChange?: (value?: ItemValue) => void;
    items?: Item[];
    rightItems?: Item[];
    keydown?: boolean;
}
export interface TitleAreaConfig {
    visible?: boolean;
    title?: {
        visible?: boolean;
        text?: string;
        fontSize?: string | number;
        color?: string;
        fontWeight?: string | number;
    };
    subtitle?: {
        visible?: boolean;
        text?: string;
        fontSize?: string | number;
        color?: string;
        fontWeight?: string | number;
    };
    alignment?: 'left' | 'right' | 'center' | 'space-between';
    spacing?: string | number;
}
export interface DisplayFieldConfig {
    cashReceived?: {
        visible?: boolean;
    };
    balanceDue?: {
        visible?: boolean;
    };
    changeDue?: {
        visible?: boolean;
    };
    gridRatio?: number[];
}
export interface CashKeyboardBaseProps {
    amountSymbol?: string;
    value?: string;
    /** 默认值，非受控模式 */
    defaultValue?: string;
    /** 原始值，多用于重置, 当前对应 Balance Due */
    originalValue?: string;
    placeholder?: string;
    max?: number;
    min?: number;
    disabled?: boolean;
    doneText?: string;
    resetText?: string;
    presets?: any;
    hiddenChangeDue?: boolean;
    onChange?: (val: string) => void;
    onEnter?: (val: string) => void;
    onReset?: () => void;
    onPay?: () => void;
    rightItemsStyle?: RightItemsStyleProps;
    titleArea?: TitleAreaConfig;
    displayField?: DisplayFieldConfig;
    keyboardProps?: KeyboardProps;
    style?: React.CSSProperties;
    selectType?: 'light' | 'dark';
    backgroundColor?: string;
    containerBackgroundColor?: string;
    buttonBackgroundColor?: string;
    textColor?: string;
    resetButtonBackgroundColor?: string;
    resetButtonTextColor?: string;
    isDoneButtonFollowTheme?: boolean;
    doneButtonBackgroundColor?: string;
    doneButtonTextColor?: string;
    keyboardBackgroundColor?: string;
    keyboardButtonBackgroundColor?: string;
    keyboardButtonTextColor?: string;
    keyboardButtonHoverColor?: string;
    shortcutsSize?: 'default' | 'large';
}
