/**
 * EliTabela
 * Componente de tabela consultável com busca, paginação, ordenação e ações por linha.
 */
/** Dependências do Vue (Composition API) */
import { PropType } from "vue";
/** Tipos da configuração/contrato da tabela */
import type { EliTabelaConsulta } from "./types-eli-tabela";
declare const __VLS_export: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
    /** Configuração principal da tabela (colunas, consulta e ações) */
    tabela: {
        type: PropType<EliTabelaConsulta<any>>;
        required: true;
    };
}>, {
    isDev: boolean;
    tabela: import("vue").ComputedRef<EliTabelaConsulta<any>>;
    carregando: import("vue").Ref<boolean, boolean>;
    erro: import("vue").Ref<string | null, string | null>;
    linhas: import("vue").Ref<unknown[], unknown[]>;
    quantidade: import("vue").Ref<number, number>;
    menuAberto: import("vue").Ref<number | null, number | null>;
    valorBusca: import("vue").Ref<string, string>;
    paginaAtual: import("vue").Ref<number, number>;
    colunaOrdenacao: import("vue").Ref<string | null, string | null>;
    direcaoOrdenacao: import("vue").Ref<"desc" | "asc", "desc" | "asc">;
    totalPaginas: import("vue").ComputedRef<number>;
    exibirBusca: import("vue").ComputedRef<boolean>;
    acoesCabecalho: import("vue").ComputedRef<{
        icone?: import("lucide-vue-next").LucideIcon;
        cor?: string;
        rotulo: string;
        acao: () => void;
    }[]>;
    temAcoesCabecalho: import("vue").ComputedRef<boolean>;
    temAcoes: import("vue").ComputedRef<boolean>;
    alternarOrdenacao: (chave?: string) => void;
    atualizarBusca: (texto: string) => void;
    irParaPagina: (pagina: number) => void;
    acoesDisponiveisPorLinha: (i: number) => {
        acao: import("./types-eli-tabela").EliTabelaAcao<any>;
        indice: number;
        visivel: boolean;
    }[];
    possuiAcoes: (i: number) => boolean;
    toggleMenu: (i: number, evento?: MouseEvent) => void;
    menuPopup: import("vue").Ref<{
        menuEl: {
            value: HTMLElement | null;
        };
    } | null, {
        menuEl: {
            value: HTMLElement | null;
        };
    } | {
        menuEl: {
            value: HTMLElement | null;
        };
    } | null>;
    menuPopupPos: import("vue").Ref<{
        top: number;
        left: number;
    }, {
        top: number;
        left: number;
    } | {
        top: number;
        left: number;
    }>;
}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
    /** Configuração principal da tabela (colunas, consulta e ações) */
    tabela: {
        type: PropType<EliTabelaConsulta<any>>;
        required: true;
    };
}>> & Readonly<{}>, {}, {}, {
    EliTabelaCabecalho: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
        exibirBusca: {
            type: BooleanConstructor;
            required: true;
        };
        valorBusca: {
            type: StringConstructor;
            required: true;
        };
        acoesCabecalho: {
            type: PropType<Array<{
                icone
                /**
                 * EliTabela
                 * Componente de tabela consultável com busca, paginação, ordenação e ações por linha.
                 */
                /** Dependências do Vue (Composition API) */
                ?: any;
                cor
                /**
                 * EliTabela
                 * Componente de tabela consultável com busca, paginação, ordenação e ações por linha.
                 */
                /** Dependências do Vue (Composition API) */
                ?: string;
                rotulo: string;
                acao: () => void;
            }>>;
            required: true;
        };
    }>, {
        temAcoesCabecalho: import("vue").ComputedRef<boolean>;
        emitBuscar: (texto: string) => void;
    }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
        buscar(valor: string): boolean;
    }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
        exibirBusca: {
            type: BooleanConstructor;
            required: true;
        };
        valorBusca: {
            type: StringConstructor;
            required: true;
        };
        acoesCabecalho: {
            type: PropType<Array<{
                icone
                /**
                 * EliTabela
                 * Componente de tabela consultável com busca, paginação, ordenação e ações por linha.
                 */
                /** Dependências do Vue (Composition API) */
                ?: any;
                cor
                /**
                 * EliTabela
                 * Componente de tabela consultável com busca, paginação, ordenação e ações por linha.
                 */
                /** Dependências do Vue (Composition API) */
                ?: string;
                rotulo: string;
                acao: () => void;
            }>>;
            required: true;
        };
    }>> & Readonly<{
        onBuscar?: ((valor: string) => any) | undefined;
    }>, {}, {}, {
        EliTabelaCaixaDeBusca: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
            modelo: {
                type: StringConstructor;
                required: false;
                default: string;
            };
        }>, {
            texto: import("vue").Ref<string, string>;
            emitirBusca: () => void;
        }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
            buscar(valor: string): boolean;
        }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
            modelo: {
                type: StringConstructor;
                required: false;
                default: string;
            };
        }>> & Readonly<{
            onBuscar?: ((valor: string) => any) | undefined;
        }>, {
            modelo: string;
        }, {}, {
            Search: import("vue").FunctionalComponent<import("lucide-vue-next").LucideProps, {}, any, {}>;
        }, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
    }, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
    EliTabelaEstados: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
        carregando: {
            type: BooleanConstructor;
            required: true;
        };
        erro: {
            type: PropType<string | null>;
            required: true;
        };
        mensagemVazio: {
            type: PropType<string | undefined>;
            required: false;
            default: undefined;
        };
    }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
        carregando: {
            type: BooleanConstructor;
            required: true;
        };
        erro: {
            type: PropType<string | null>;
            required: true;
        };
        mensagemVazio: {
            type: PropType<string | undefined>;
            required: false;
            default: undefined;
        };
    }>> & Readonly<{}>, {
        mensagemVazio: string | undefined;
    }, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
    EliTabelaDebug: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
        isDev: {
            type: BooleanConstructor;
            required: true;
        };
        menuAberto: {
            type: PropType<number | null>;
            required: true;
        };
        menuPopupPos: {
            type: PropType<{
                top: number;
                left: number;
            }>;
            required: true;
        };
    }>, {}, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
        isDev: {
            type: BooleanConstructor;
            required: true;
        };
        menuAberto: {
            type: PropType<number | null>;
            required: true;
        };
        menuPopupPos: {
            type: PropType<{
                top: number;
                left: number;
            }>;
            required: true;
        };
    }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
    EliTabelaHead: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
        colunas: {
            type: PropType<Array<import("./types-eli-tabela").EliColuna<any>>>;
            required: true;
        };
        temAcoes: {
            type: BooleanConstructor;
            required: true;
        };
        colunaOrdenacao: {
            type: PropType<string | null>;
            required: true;
        };
        direcaoOrdenacao: {
            type: PropType<"asc" | "desc">;
            required: true;
        };
    }>, {
        ArrowUp: import("vue").FunctionalComponent<import("lucide-vue-next").LucideProps, {}, any, {}>;
        ArrowDown: import("vue").FunctionalComponent<import("lucide-vue-next").LucideProps, {}, any, {}>;
        isOrdenavel: (coluna: any) => boolean;
        obterClasseAlinhamento: (alinhamento?: string) => "eli-tabela__celula--direita" | "eli-tabela__celula--centro" | "eli-tabela__celula--esquerda";
        emitAlternarOrdenacao: (chave: string) => void;
    }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
        alternarOrdenacao(chave: string): boolean;
    }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
        colunas: {
            type: PropType<Array<import("./types-eli-tabela").EliColuna<any>>>;
            required: true;
        };
        temAcoes: {
            type: BooleanConstructor;
            required: true;
        };
        colunaOrdenacao: {
            type: PropType<string | null>;
            required: true;
        };
        direcaoOrdenacao: {
            type: PropType<"asc" | "desc">;
            required: true;
        };
    }>> & Readonly<{
        onAlternarOrdenacao?: ((chave: string) => any) | undefined;
    }>, {}, {}, {
        ArrowUp: import("vue").FunctionalComponent<import("lucide-vue-next").LucideProps, {}, any, {}>;
        ArrowDown: import("vue").FunctionalComponent<import("lucide-vue-next").LucideProps, {}, any, {}>;
    }, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
    EliTabelaBody: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
        colunas: {
            type: PropType<Array<import("./types-eli-tabela").EliColuna<any>>>;
            required: true;
        };
        linhas: {
            type: PropType<Array<unknown>>;
            required: true;
        };
        temAcoes: {
            type: BooleanConstructor;
            required: true;
        };
        menuAberto: {
            type: PropType<number | null>;
            required: true;
        };
        possuiAcoes: {
            type: PropType<(i: number) => boolean>;
            required: true;
        };
    }>, {
        obterClasseAlinhamento: (alinhamento?: string) => "eli-tabela__celula--direita" | "eli-tabela__celula--centro" | "eli-tabela__celula--esquerda";
        obterMaxWidth: (largura?: number | string) => string | undefined;
        obterTooltipCelula: (celula: unknown) => any;
        emitToggleMenu: (indice: number, evento: MouseEvent) => void;
    }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
        toggleMenu(payload: {
            indice: number;
            evento: MouseEvent;
        }): boolean;
    }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
        colunas: {
            type: PropType<Array<import("./types-eli-tabela").EliColuna<any>>>;
            required: true;
        };
        linhas: {
            type: PropType<Array<unknown>>;
            required: true;
        };
        temAcoes: {
            type: BooleanConstructor;
            required: true;
        };
        menuAberto: {
            type: PropType<number | null>;
            required: true;
        };
        possuiAcoes: {
            type: PropType<(i: number) => boolean>;
            required: true;
        };
    }>> & Readonly<{
        onToggleMenu?: ((payload: {
            indice: number;
            evento: MouseEvent;
        }) => any) | undefined;
    }>, {}, {}, {
        EliTabelaCelula: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
            celula: {
                type: PropType<import("./types-eli-tabela").ComponenteCelula>;
                required: true;
            };
        }>, {
            Componente: import("vue").ComputedRef<import("vue").Component>;
            dadosParaComponente: import("vue").ComputedRef<{
                texto: string;
                acao?: () => void;
            } | {
                numero: number;
                acao?: () => void;
            }>;
        }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
            celula: {
                type: PropType<import("./types-eli-tabela").ComponenteCelula>;
                required: true;
            };
        }>> & Readonly<{}>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
        MoreVertical: import("vue").FunctionalComponent<import("lucide-vue-next").LucideProps, {}, any, {}>;
    }, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
    EliTabelaMenuAcoes: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
        menuAberto: {
            type: PropType<number | null>;
            required: true;
        };
        posicao: {
            type: PropType<{
                top: number;
                left: number;
            }>;
            required: true;
        };
        acoes: {
            type: PropType<Array<{
                acao: import("./types-eli-tabela").EliTabelaAcao<any>;
                indice: number;
                visivel: boolean;
            }>>;
            required: true;
        };
        linha: {
            type: PropType<unknown | null>;
            required: true;
        };
    }>, {
        menuEl: import("vue").Ref<HTMLElement | null, HTMLElement | null>;
        possuiAcoes: import("vue").ComputedRef<boolean>;
        emitExecutar: (item: {
            acao: import("./types-eli-tabela").EliTabelaAcao<any>;
        }) => void;
    }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
        executar(payload: {
            acao: import("./types-eli-tabela").EliTabelaAcao<any>;
            linha: unknown;
        }): boolean;
    }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
        menuAberto: {
            type: PropType<number | null>;
            required: true;
        };
        posicao: {
            type: PropType<{
                top: number;
                left: number;
            }>;
            required: true;
        };
        acoes: {
            type: PropType<Array<{
                acao: import("./types-eli-tabela").EliTabelaAcao<any>;
                indice: number;
                visivel: boolean;
            }>>;
            required: true;
        };
        linha: {
            type: PropType<unknown | null>;
            required: true;
        };
    }>> & Readonly<{
        onExecutar?: ((payload: {
            acao: import("./types-eli-tabela").EliTabelaAcao<any>;
            linha: unknown;
        }) => any) | undefined;
    }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
    EliTabelaPaginacao: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
        pagina: {
            type: NumberConstructor;
            required: true;
        };
        totalPaginas: {
            type: NumberConstructor;
            required: true;
        };
        maximoBotoes: {
            type: NumberConstructor;
            required: false;
        };
    }>, {
        botoes: import("vue").ComputedRef<{
            label: string;
            pagina?: number;
            ativo?: boolean;
            ehEllipsis?: boolean;
        }[]>;
        irParaPagina: (pagina: number | undefined) => void;
        anteriorDesabilitado: import("vue").ComputedRef<boolean>;
        proximaDesabilitada: import("vue").ComputedRef<boolean>;
        paginaAtual: import("vue").ComputedRef<number>;
        totalPaginasExibidas: import("vue").ComputedRef<number>;
    }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
        alterar(pagina: number): boolean;
    }, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
        pagina: {
            type: NumberConstructor;
            required: true;
        };
        totalPaginas: {
            type: NumberConstructor;
            required: true;
        };
        maximoBotoes: {
            type: NumberConstructor;
            required: false;
        };
    }>> & Readonly<{
        onAlterar?: ((pagina: number) => any) | undefined;
    }>, {}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
declare const _default: typeof __VLS_export;
export default _default;
