import { SearchResultType } from '../components/SearchResults/SearchResults';
import { StringReplacementRule } from '../utils/processStringReplacement';
export declare const processUrlMatchingRule: (fullUrl: string, partialUrl: string, urlRule?: UrlMatchingRule) => {
    matches: boolean;
    remainingChildPaths?: string[];
};
export declare const processUrlToBreadcrumbMapper: (fullUrl: string, partialPath: string, urlToBreadcrumbMapper?: UrlToBreadcrumbsMapperRules) => {
    breadcrumbName: string | null;
    replaceLeading: boolean;
};
export declare const applyBreadcrumbRules: (searchResult: SearchResultType, rules: BreadcrumbRules, stringReplacementRules?: StringReplacementRule[]) => string[];
export declare const convertUrlToBreadcrumbs: (searchResult: SearchResultType, rules: BreadcrumbRules) => string[];
export declare const useBreadcrumbs: (searchResult: SearchResultType, isFocused?: boolean, tabLabel?: string) => import("react/jsx-runtime").JSX.Element[];
interface UrlMatchingRuleInterface {
    ruleType: 'PartialUrl' | 'SubpathOnly';
}
type PartialUrlMatchingRule = UrlMatchingRuleInterface & {
    ruleType: 'PartialUrl';
    partialUrl: string;
    maxNChildSubpaths?: number;
};
type SubpathOnlyUrlMatchingRule = UrlMatchingRuleInterface & {
    ruleType: 'SubpathOnly';
    subpath: string;
};
export type CasingStyle = 'LOWER_CASE' | 'TITLE_CASE' | 'UPPER_CASE';
export interface BreadcrumbRules {
    style?: CasingStyle;
    urlToBreadcrumbMapper?: UrlToBreadcrumbsMapperRules;
}
type UrlToBreadcrumbsMapperRules = {
    matchingRule: UrlMatchingRule;
    breadcrumbName: string;
    replaceLeading?: boolean;
}[];
export type UrlMatchingRule = PartialUrlMatchingRule | SubpathOnlyUrlMatchingRule;
export {};
