import { type BreadcrumbItem } from '../breadcrumbStore/index';
/**
 * Interface para configuração de um nível de breadcrumb dinâmico (com dados)
 */
export interface BreadcrumbLevelWithData<T = any> {
    /** Dados do nível atual */
    data: T | null;
    /** ID extraído da URL para comparação */
    urlId?: string;
    /** Função para obter o ID dos dados */
    getId: (data: T) => string;
    /** Função para obter o nome dos dados */
    getName: (data: T) => string;
    /** Função para construir a URL do breadcrumb */
    getUrl: (data: T, previousIds: string[]) => string;
}
/**
 * Interface para configuração de um nível de breadcrumb estático (sem dados)
 */
export interface BreadcrumbLevelStatic {
    /** Breadcrumb estático */
    breadcrumb: BreadcrumbItem;
    /** ID extraído da URL para validação (se não estiver na URL, não mostra) */
    urlId?: string;
}
/**
 * Union type para aceitar ambos os tipos de breadcrumb
 */
export type BreadcrumbLevel<T = any> = BreadcrumbLevelWithData<T> | BreadcrumbLevelStatic;
/**
 * Configuração do builder de breadcrumbs
 */
export interface BreadcrumbBuilderConfig {
    /** Namespace único para este breadcrumb */
    namespace: string;
    /** Breadcrumb inicial (raiz) */
    root: BreadcrumbItem;
    /** Níveis hierárquicos de breadcrumbs (cada um pode ter tipo diferente) */
    levels: BreadcrumbLevel<any>[];
}
export declare const useBreadcrumbBuilder: (config: BreadcrumbBuilderConfig) => {
    breadcrumbs: BreadcrumbItem[];
    sliceBreadcrumbs: (index: number) => void;
};
//# sourceMappingURL=useBreadcrumbBuilder.d.ts.map