import { type PartialWithUndefined } from '@augment-vir/common';
import { type ViraFormField, type ViraFormFields } from '../util/vira-form-fields.js';
/**
 * A form element.
 *
 * @category Elements
 * @see https://electrovir.github.io/vira/book/elements/vira-form
 */
export declare const ViraForm: import("element-vir").DeclarativeElementDefinition<"vira-form", {
    fields: Readonly<ViraFormFields>;
} & PartialWithUndefined<{
    showClearButtons: boolean;
    /**
     * When `true`, all fields in this form are disabled. Note that this will not (and can not)
     * disable any child elements you've inserted via <slot>.
     *
     * @default false
     */
    isDisabled: boolean;
    /**
     * If true, no `'*'` is appended to required form field labels.
     *
     * @default false
     */
    hideRequiredMarkers: boolean;
    /**
     * When `true`, all checkboxes in this form render horizontally.
     *
     * @default false
     */
    horizontalCheckboxes: boolean;
    /**
     * When `true`, all form field labels render to the left of their inputs instead of above
     * them.
     *
     * @default false
     */
    useHorizontalLabels: boolean;
    /**
     * When `true`, all fields in this form are prevented from user edits. Inputs, selects, and
     * text areas render their current value as plain text; checkboxes render disabled since
     * they have no native readonly mode.
     *
     * @default false
     */
    isReadonly: boolean;
}>, {
    lastIsValid: boolean;
}, {
    valueChange: import("element-vir").DefineEvent<{
        key: string;
    } & ViraFormField>;
    validChange: import("element-vir").DefineEvent<{
        allFieldsAreValid: boolean;
    }>;
}, "vira-form-", "vira-form-", readonly [], readonly []>;
