import { DraftAssistant } from "./DraftAssistant";
import type { ModelFromContainer } from "../types";
import { LabelId, CollectableRule } from "../rule";
/**
 * An assistant designed to manage a single field or a simple
 * piece of data within a larger form or model.
 *
 * @category Draft assistants
 */
export declare class FieldDraftAssistant<ContainerModel = any, Model extends string = string> extends DraftAssistant<Model, ContainerModel> {
    protected assertions: CollectableRule<Model, void>[];
    static handling<ContainerModel = any, Model extends string = string>(assertionId: LabelId, modelFromContainer: ModelFromContainer<Model, ContainerModel>, initialModel?: string): FieldDraftAssistant<ContainerModel, Model>;
    static handlingAll<ContainerModel = any, Model extends string = string>(assertionIds: LabelId[], modelFromContainer: ModelFromContainer<Model, ContainerModel>, initialModel?: string): FieldDraftAssistant<ContainerModel, Model>;
    static requiring<ContainerModel = any, Model extends string = string>(assertion: CollectableRule<Model | void, void>, modelFromContainer: ModelFromContainer<Model, ContainerModel>, initialModel?: string): FieldDraftAssistant<ContainerModel, Model>;
    static requiringAll<ContainerModel = any, Model extends string = string>(assertions: CollectableRule<Model | void, void>[], modelFromContainer: ModelFromContainer<Model, ContainerModel>, initialModel?: string): FieldDraftAssistant<ContainerModel, Model>;
    protected constructor(assertions: CollectableRule<Model, void>[], modelFromContainer: ModelFromContainer<Model, ContainerModel>, initialModel: Model);
    createModel(): Model;
    /**
     * Checks if the current draft verifies all assertions.
     * If not, it adds them to the list of failed assertions.
     */
    review(): void;
}
//# sourceMappingURL=FieldDraftAssistant.d.ts.map