import type { Dispatch, StateUpdater } from 'preact/hooks';
import type { TopLevelDataSchema } from '../context/StateContext/types';
import type { AdditionalEventProperties } from '../core/user-events';
import type { EntityProblems } from '../types/errors/entity-problems';
import type { FormModelWithValidity } from '../types/form';
import type { Form } from './useMultiForm/types';
export interface FormComposer {
    handleNextClick(updatedForms?: FormModelWithValidity[]): void;
    handleBackClick?(): void;
    gotoFormByFormIndex(index: number): void;
    gotoFormByFormId(formId: string): void;
    activeForm: FormModelWithValidity;
    shouldValidate: boolean;
    setShouldValidate: Dispatch<StateUpdater<boolean>>;
    steps: {
        current: number;
        total: number;
    };
}
export declare const useFormComposer: <Schema extends TopLevelDataSchema = TopLevelDataSchema>({ problems, navigationTrackingParams, forms, externalBackClick, onSubmit, triggerValidation, }: {
    problems?: EntityProblems;
    navigationTrackingParams?: Partial<AdditionalEventProperties>;
    forms: FormModelWithValidity[];
    externalBackClick?(): void;
    onSubmit(): void;
    triggerValidation?: Form<Schema>["triggerValidation"];
}) => FormComposer;
