import SelectField from "./SelectField.vue";
import Items from "./Items.vue";
import Input from "./Input.vue";
export type OpcoesValidacoes = '' | 'required' | `minLength:${number}` | `maxLength:${number}`;
type BaseComponent = {
    nome: string;
    label?: string;
    description?: string;
    placeholder?: string;
    disabled?: boolean;
    introspect_caminho?: string;
    validacoes?: OpcoesValidacoes[];
    focus_on_mount?: boolean;
    validou?: boolean;
};
type InnerComponent = {
    is: typeof SelectField | typeof Input | typeof Items;
    props: InputProps | SelectProps | ItemsProps;
};
export type Validacoes = {
    required: boolean;
    minlength?: number;
    maxlength?: number;
};
export interface ItemsProps extends BaseComponent {
    disabled?: boolean;
    inner_component: InnerComponent;
}
export interface InputProps extends BaseComponent {
    type?: 'text' | 'number' | 'checkbox';
    bootstrap_syncfusion?: 'bs' | 'sf';
    cssSFClass?: string | "e-primary" | "e-success" | "e-info" | "e-warning" | "e-danger";
    step?: string;
    currency?: 'BRL' | 'EUR' | 'USD';
    is_text_area?: boolean;
    floatLabelType?: "Auto" | "Always" | "Never";
}
export interface SelectProps extends BaseComponent {
    options: {
        label?: string;
        value: string;
    }[];
    labelCentered?: boolean;
    isSubmitting?: boolean;
    selectedValue?: string;
}
export {};
