import { MantineSize } from '@mantine/core';
import { default as React, CSSProperties } from 'react';
import { IArchbaseDataSourceBase } from '@archbase/data';
export interface ArchbaseDualListboxOption {
    value: any;
    label: string;
    group?: string;
    disabled?: boolean;
}
export interface ArchbaseDualListboxProps<T, ID, O> {
    /** Fonte de dados onde sera atribuido o valor (V1 ou V2) */
    dataSource?: IArchbaseDataSourceBase<T>;
    /** Campo onde devera ser atribuido o valor na fonte de dados */
    dataField?: string;
    /** Valor de entrada controlado */
    value?: any[];
    /** Valor padrao de entrada nao controlado */
    defaultValue?: any[];
    /** Opcoes disponiveis para selecao */
    options: ArchbaseDualListboxOption[];
    /** Titulo do componente */
    label?: string;
    /** Descricao do componente */
    description?: string;
    /** Ultimo erro ocorrido */
    error?: string;
    /** Indicador se o campo e obrigatorio */
    required?: boolean;
    /** Indicador se o componente esta desabilitado */
    disabled?: boolean;
    /** Indicador se o componente e somente leitura */
    readOnly?: boolean;
    /** Titulo da lista de itens disponiveis */
    availableLabel?: string;
    /** Titulo da lista de itens selecionados */
    selectedLabel?: string;
    /** Exibir campo de busca em cada lista */
    showSearch?: boolean;
    /** Exibir botoes para mover todos os itens */
    showMoveAll?: boolean;
    /** Altura das listas */
    height?: number;
    /** Evento quando o valor muda */
    onChangeValue?: (value: any[]) => void;
    /** Evento quando o componente recebe o foco */
    onFocusEnter?: (event: React.FocusEvent) => void;
    /** Evento quando o foco sai do componente */
    onFocusExit?: (event: React.FocusEvent) => void;
    /** Estilo do componente */
    style?: CSSProperties;
    /** Classe CSS do componente */
    className?: string;
    /** Largura do componente */
    width?: string | number;
    /** Tamanho do componente */
    size?: MantineSize;
}
export declare function ArchbaseDualListbox<T, ID, O>({ dataSource, dataField, value, defaultValue, options, label, description, error, required, disabled, readOnly, availableLabel, selectedLabel, showSearch, showMoveAll, height, onChangeValue, onFocusEnter, onFocusExit, style, className, width, size, }: ArchbaseDualListboxProps<T, ID, O>): import("react/jsx-runtime").JSX.Element;
export declare namespace ArchbaseDualListbox {
    var displayName: string;
}
