import type { TypeName } from '../port/apexSourceProvider.js'; import type { SObjectSchemaProvider } from '../port/sObjectSchemaProvider.js'; import { ApexType } from '../type/ApexMethod.js'; export interface TypeMatcher { matches(typeName: string): boolean; collect(typeName: string): void; readonly collectedTypes: ReadonlySet; populate?(): Promise; getFieldType?(objectType: string, fieldName: string): ApexType | undefined; } export declare class AliasTypeMatcher implements TypeMatcher { private readonly schema?; private readonly canonicalByAlias; private readonly _collectedTypes; constructor(types: TypeName[], schema?: SObjectSchemaProvider | undefined); matches(typeName: string): boolean; collect(typeName: string): void; get collectedTypes(): ReadonlySet; populate(): Promise; getFieldType(objectType: string, fieldName: string): ApexType | undefined; private registerCanonicalNames; private registerAliases; private canonical; }