import { Schema, SchemaData, Dialect, Mapping, MatchOptions, InitializeSchemaArgs, SchemaInfo, IFileSchemaService } from '../domain';
import { SchemaExtender } from './services/schemaExtender';
import { CreateSchema } from './useCases/create';
import { UpdateSchema } from './useCases/update';
import { SchemaService } from './services/schemaService';
import { GetSchemaSchema } from './useCases/getSchemaData';
import { Type } from 'typ3s';
import { MatchSchema } from './useCases/match';
import { InitializeSchema } from './useCases/initialize';
export declare class SchemaFacade {
    readonly schemaService: SchemaService;
    private readonly getSchemaData;
    private readonly extender;
    private readonly createSchema;
    private readonly initializeSchema;
    private readonly updateSchema;
    private readonly matchSchema;
    private readonly fileService;
    constructor(schemaService: SchemaService, getSchemaData: GetSchemaSchema, extender: SchemaExtender, createSchema: CreateSchema, initializeSchema: InitializeSchema, updateSchema: UpdateSchema, matchSchema: MatchSchema, fileService: IFileSchemaService);
    create(dialect?: Dialect, connection?: any): Schema;
    initialize(schema: Schema, args: InitializeSchemaArgs): Schema;
    introspect(schema: Schema, data: any | any[], name: string): SchemaData;
    match(schema: Schema, mappings: Mapping[], options?: MatchOptions): void;
    schemaData(source: any, name: string, type: Type): SchemaData;
    complete(schema: Schema): void;
    read(workspace: string): Promise<SchemaInfo | null>;
    write(schema: Schema, path: string): Promise<void>;
}
