import { IActivityHandler, IActivityContext, Deferrable } from "../../IActivityHandler";
import { FormRenderer, defs } from "./FormRenderer";
import { Lookup } from "../../Collections";
/** Defines the inputs for a display form activity. */
export interface DisplayFormInputs {
    /** Indicates a name of the form (local to the running workflow). */
    name: string;
    /** Indicates the form resource to load if not yet loaded. */
    form: defs.Form;
    /** Indicates the form template to load if not yet loaded. */
    template?: defs.Form;
    /** Indicates what container to use when displaying the form. */
    container?: "default" | "modal" | string;
    /** Indicates what region to use when activating the form's container. */
    region?: string;
    /** Indicates that the form should be reset. */
    reset?: boolean;
}
/** Defines the outputs for a display form activity. */
export interface DisplayFormOutputs {
    /** Indicates the state of the form. */
    state: Lookup<defs.Element>;
    /** Indicates the result for the form (if set, causes the form to exit on the next pass). */
    result?: string;
}
/** Displays a form. */
export declare class DisplayForm implements IActivityHandler {
    static renderers: Lookup<FormRenderer>;
    /**
     * Creates a form renderer if it does not exist.
     * @param inputs The inputs to create the renderer.
     * @param context The context to use to create the renderer.
     * @param type The type of FormRenderer (subclass) to create.
     */
    static createRenderer(inputs: DisplayFormInputs, context: IActivityContext, type: typeof FormRenderer): FormRenderer;
    static action: string;
    static suite: string;
    /** Performs the operation on behalf of the engine. */
    execute(inputs: DisplayFormInputs, context: IActivityContext, type: typeof FormRenderer): Deferrable<DisplayFormOutputs>;
    /**
     * Updates the references in the `ElementMap` for all of the elements
     * contained in `displayFormOutputs`.
     * @param displayFormOutputs The outputs of the `DisplayForm` activity.
     */
    private static updateElementMap;
}
