import { Schema, SchemaData, SourceRule, Mapping, MatchOptions, InitializeSchemaArgs, DomainSchema, Entity, Enum, EntityMapping, Stage, SentenceInfo } from '../domain';
import { DataSourceConfigService } from './services/config/dataSourceConfigService';
import { MappingsConfigService } from './services/config/mappingsConfigService';
import { DomainConfigService } from './services/config/domainConfigService';
import { StageConfigService } from './services/config/stageConfigService';
import { ViewsConfigService } from './services/config/viewsConfigService';
import { RouteService } from './services/routeService';
import { SchemaFacade } from './facade';
import { OrmBaseH3lp } from '../../shared';
import { LoadSchema } from './useCases/load';
export declare class SchemaState {
    readonly source: DataSourceConfigService;
    readonly domain: DomainConfigService;
    readonly mapping: MappingsConfigService;
    readonly stage: StageConfigService;
    readonly view: ViewsConfigService;
    private readonly routeService;
    private readonly facade;
    private readonly loadSchema;
    private readonly helper;
    schema: Schema;
    originalSchema: Schema;
    schemaPath?: string;
    constructor(source: DataSourceConfigService, domain: DomainConfigService, mapping: MappingsConfigService, stage: StageConfigService, view: ViewsConfigService, routeService: RouteService, facade: SchemaFacade, loadSchema: LoadSchema, helper: OrmBaseH3lp);
    initialize(args: InitializeSchemaArgs): Promise<Schema>;
    load(source: string | Schema): Promise<Schema>;
    introspect(data: any | any[], name: string): Promise<SchemaData>;
    match(mappings: Mapping[], options?: MatchOptions): Promise<void>;
    evalSourceRule(rule: SourceRule, info: SentenceInfo): boolean;
    getSource(info: SentenceInfo, stage?: string): string;
    getSchemaSources(): {
        name: string;
        dialect: string;
    }[];
    getSchemaSource(source: string): {
        name: string;
        dialect: string;
    };
    getSchemaVersion(): {
        version: string;
    };
    getSchemaDomain(): DomainSchema;
    getSchemaEntities(): Entity[];
    getSchemaEntity(entity: string): Entity | undefined;
    getSchemaEnums(): Enum[];
    getSchemaEnum(_enum: string): Enum | undefined;
    getSchemaMappings(): Mapping[];
    getSchemaMapping(mapping: string): Mapping | undefined;
    getSchemaEntityMapping(mapping: string, entity: string): EntityMapping | undefined;
    getSchemaStages(): Stage[];
    getSchemaStage(stage: string): Stage | undefined;
    getSchemaViews(): string[];
    private toSchema;
}
