import { type PageRepeat, type Repeat } from '@defra/forms-model';
import { type FormModel } from '~/src/server/plugins/engine/models/index.js';
import { QuestionPageController } from '~/src/server/plugins/engine/pageControllers/QuestionPageController.js';
import { type FormContext, type FormContextRequest, type FormPageViewModel, type FormPayload, type FormSubmissionState, type RepeatItemState, type RepeatListState, type RepeaterSummaryPageViewModel } from '~/src/server/plugins/engine/types.js';
import { FormAction, type FormRequest, type FormRequestPayload, type FormResponseToolkit } from '~/src/server/routes/types.js';
export declare class RepeatPageController extends QuestionPageController {
    pageDef: PageRepeat;
    listSummaryViewName: string;
    listDeleteViewName: string;
    repeat: Repeat;
    allowSaveAndExit: boolean;
    constructor(model: FormModel, pageDef: PageRepeat);
    get keys(): string[];
    getFormParams(request?: FormContextRequest): import("~/src/server/plugins/engine/types.js").FormPayloadParams;
    getFormDataFromState(request: FormContextRequest | undefined, state: FormSubmissionState): {
        action?: FormAction;
        confirm?: true;
        crumb?: string;
        itemId?: string;
    };
    getStateFromValidForm(request: FormContextRequest, state: FormSubmissionState, payload: FormPayload): {
        [x: string]: RepeatItemState[];
    };
    proceed(request: FormContextRequest, h: FormResponseToolkit): import("@hapi/hapi").ResponseObject;
    getItemFromList(list: RepeatListState, itemId?: string): RepeatItemState | undefined;
    getListFromState(state: FormSubmissionState): RepeatListState;
    makeGetRouteHandler(): (request: FormRequest, context: FormContext, h: FormResponseToolkit) => Promise<import("@hapi/hapi").ResponseObject>;
    makeGetListSummaryRouteHandler(): (request: FormRequest, context: FormContext, h: FormResponseToolkit) => import("@hapi/hapi").ResponseObject;
    makePostListSummaryRouteHandler(): (request: FormRequestPayload, context: FormContext, h: FormResponseToolkit) => import("@hapi/hapi").ResponseObject;
    makeGetItemDeleteRouteHandler(): (request: FormRequest, context: FormContext, h: FormResponseToolkit) => import("@hapi/hapi").ResponseObject;
    makePostItemDeleteRouteHandler(): (request: FormRequestPayload, context: FormContext, h: FormResponseToolkit) => Promise<import("@hapi/hapi").ResponseObject>;
    getViewModel(request: FormContextRequest, context: FormContext): FormPageViewModel;
    getListSummaryViewModel(request: FormContextRequest, context: FormContext, list: RepeatListState): RepeaterSummaryPageViewModel;
    getSummaryPath(request?: FormContextRequest): string;
}
