/** @packageDocumentation
 * @module Internal
 */
import { Id64String } from "@itwin/core-bentley";
import { ECSqlReader, QueryBinder, QueryOptions } from "@itwin/core-common";
import { IModelConnection } from "@itwin/core-frontend";
/** @internal */
export declare class ECClassInfo {
    readonly id: Id64String;
    readonly name: string;
    readonly label: string;
    private _baseClasses;
    private _derivedClasses;
    constructor(id: Id64String, name: string, label: string, _baseClasses: Set<Id64String>, _derivedClasses: Set<Id64String>);
    get baseClassIds(): Array<Id64String>;
    get derivedClassIds(): Array<Id64String>;
    isBaseOf(idOrInfo: Id64String | ECClassInfo): boolean;
    isDerivedFrom(idOrInfo: Id64String | ECClassInfo): boolean;
}
/** @internal */
export declare class ECMetadataProvider {
    private _queryReaderFactory;
    private _classInfoCache;
    constructor(_queryReaderFactory: (ecsql: string, params?: QueryBinder, config?: QueryOptions) => ECSqlReader);
    getECClassInfo(idOrFullName: Id64String | string): Promise<ECClassInfo | undefined>;
    getECClassInfo(schemaName: string, className: string): Promise<ECClassInfo | undefined>;
    private getClassInfoById;
    private getClassInfoByFullName;
    private createECClassInfo;
    private queryClassHierarchyInfo;
    private splitFullClassName;
}
/** @internal */
export declare function getIModelMetadataProvider(imodel: IModelConnection): ECMetadataProvider;
//# sourceMappingURL=ECMetadataProvider.d.ts.map