import Field from '@core/managers/Field';
import Scope from '@core/managers/Scope';
import Base from '@core/managers/Base';
import * as Events from '@core/events';
import { TComponent, TFormValues, TSchema, TStepData, TComponentPropsMapping, TFormEventDirectives, TEventsKeys, TFields } from '@core/types';
declare class Form extends Base {
    #private;
    formData: TFormValues;
    formId: string;
    schema: TSchema;
    scopedSchema: TSchema;
    scope: Scope;
    initialValues: Record<string, unknown>;
    steps: Record<number, TFields>;
    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(): TFields;
    eventReducedSchema(event: TEventsKeys): TFormEventDirectives;
    getFieldInstance(component: TComponent, propsMapping?: TComponentPropsMapping): Field;
    rehydrate(): void;
    destroyField(field: string): void;
}
export default Form;
export type { Form };
