import { EventEmitter } from '../../stencil-public-runtime';
import { FormError, FormSchema, ValidationError, ValidationStatus } from './form.types';
/**
 * @exampleComponent limel-example-form
 * @exampleComponent limel-example-nested-form
 * @exampleComponent limel-example-list-form
 * @exampleComponent limel-example-dynamic-form
 * @exampleComponent limel-example-custom-component-form
 * @exampleComponent limel-example-props-factory-form
 * @exampleComponent limel-example-form-layout
 * @exampleComponent limel-example-form-span-fields
 * @exampleComponent limel-example-custom-error-message
 * @exampleComponent limel-example-server-errors
 * @exampleComponent limel-example-form-array-item-controls
 * @exampleComponent limel-example-form-with-help
 * @exampleComponent limel-example-form-row-layout
 * @exampleComponent limel-example-builtin-field-types-form
 * @exampleComponent limel-example-code-editor-form
 */
export declare class Form {
    /**
     * The schema used to render the form
     */
    schema: FormSchema;
    /**
     * Value of the form
     */
    value: object;
    /**
     * Set to `true` to disable the whole form.
     */
    disabled: boolean;
    /**
     * Factory for creating properties for custom form components
     *
     * When using custom components in the form some properties might have to be
     * set dynamically. If this factory is set, it will be called with the
     * current schema for the field for each custom component in the form. The
     * factory must return an object where each key is the name of the property
     * that should be set, along with its value.
     */
    propsFactory?: (schema: FormSchema) => Record<string, any>;
    /**
     * Custom function to customize the default error messages
     */
    transformErrors?: (errors: FormError[]) => FormError[];
    /**
     * Extra errors to display in the form. Typical use case is asynchronous
     * errors generated server side.
     */
    errors: ValidationError;
    /**
     * Emitted when a change is made within the form
     */
    change: EventEmitter<object>;
    /**
     * Emitted when the validity of the form changes, or when
     * a change is made to an invalid form
     */
    validate: EventEmitter<ValidationStatus>;
    private host;
    private isValid;
    private modifiedSchema;
    private validator;
    private root;
    private initialized;
    constructor();
    connectedCallback(): void;
    componentWillLoad(): void;
    componentDidLoad(): void;
    private initialize;
    componentDidUpdate(): void;
    disconnectedCallback(): void;
    render(): any;
    private reactRender;
    private handleChange;
    private validateForm;
    setSchema(): void;
    private setSchemaId;
    private createValidator;
    private getValidationErrors;
    private getExtraErrors;
    private getCustomErrorMessages;
}
//# sourceMappingURL=form.d.ts.map