import Field from './Field.js';
import Scope from './Scope.js';
import Base from './Base.js';
import * as Events from '../events/index.js';
import { TComponent, TFormValues, TSchema, TStepData, TComponentPropsMapping, TFormEventDirectives } from '../types.js';
declare class Form extends Base {
    #private;
    formData: TFormValues;
    formId: string;
    schema: TSchema;
    scopedSchema: TSchema;
    scope: Scope;
    initialValues: Record<string, unknown>;
    steps: Record<number, {
        [x in string]: Field;
    }>;
    group: string;
    constructor(formId: string, observer: Events.Observer, scope: Scope, schema: TSchema, opts: {
        initialValues: Record<string, unknown>;
    }, group: any);
    get step(): TStepData;
    set step(step: TStepData);
    get fields(): {
        [x: string]: Field;
    };
    eventReducedSchema(event: Events.TEventsKeys): TFormEventDirectives;
    getFieldInstance(component: TComponent, propsMapping?: TComponentPropsMapping): Field;
    rehydrate(): void;
    destroyField(field: string): void;
}
export default Form;
export type { Form };
