import { PoorNodeType } from './types';
export declare type IdentifierWildcardAlias = {
    alias: string;
    aliasValue: string;
    wildcard: string;
};
export declare type StringWildcardAlias = {
    alias: string;
    aliasValue: string;
    wildcard: string;
};
export declare type NodesTreeWildcardAlias = {
    alias: string;
    aliasNode: PoorNodeType;
    aliasValue: string;
    wildcard: string;
};
declare type IdentifierWildcardAliasesMap = Record<IdentifierWildcardAlias['alias'], IdentifierWildcardAlias>;
declare type StringWildcardAliasesMap = Record<StringWildcardAlias['alias'], StringWildcardAlias>;
declare type NodesTreeWildcardAliasesMap = Record<NodesTreeWildcardAlias['alias'], NodesTreeWildcardAlias>;
export declare type MatchContextAliases = {
    identifierAliasesMap: IdentifierWildcardAliasesMap;
    stringAliasesMap: StringWildcardAliasesMap;
    nodesTreeAliasesMap: NodesTreeWildcardAliasesMap;
};
export declare type MatchContext = {
    addIdentifierAlias: (ref: IdentifierWildcardAlias) => void;
    getIdentifierAlias: (alias: string) => IdentifierWildcardAlias | null;
    addStringAlias: (ref: StringWildcardAlias) => void;
    getStringAlias: (alias: string) => StringWildcardAlias | null;
    addNodesTreeAlias: (ref: NodesTreeWildcardAlias) => void;
    getNodesTreeAlias: (alias: string) => NodesTreeWildcardAlias | null;
    getAllAliases: () => MatchContextAliases;
    merge: (contextMatchAliases: MatchContextAliases) => void;
};
export declare const createMatchContext: (initialContext?: MatchContextAliases | undefined) => MatchContext;
export {};
