import { ControlGroup } from '../control-group/control-group.js';
import { ControlMessage } from '../control-message/control-message.js';
import { Control } from '../control/control.js';
export declare const inputQuery = "input, select, selectmenu, textarea, [nve-control]";
export interface ControlStateCleanup {
    disconnect: () => void;
}
/**
 * Adds validation states to custom element
 * :state(valid) form control is in a valid state
 * :state(invalid) form control is in a invalid state
 */
export declare function setupControlValidationStates(control: Control, messages: ControlMessage[]): ControlStateCleanup[];
/**
 * Adds control interaction states to custom element
 * :state(checked) form control is in a checked state
 * :state(disabled) form control is in a disabled state
 * :state(readonly) form control is in a readonly state
 * :state(touched) form control received focus and then blurred
 * :state(dirty) user modified the form control
 */
export declare function setupControlStates(control: Control): ControlStateCleanup[];
/**
 * Adds control group interaction states to custom element
 * :state(disabled) any form control within group is in a disabled state
 */
export declare function setupControlGroupStates(controlGroup: ControlGroup): MutationObserver;
/**
 * Adds control status states to custom element
 * :state(error) form control is in a error state
 * :state(success) form control is in a success state
 */
export declare function setupControlStatusStates(control: Control | ControlGroup, messages: ControlMessage[]): ControlStateCleanup[];
export declare function updateControlStatusState(control: Control | ControlGroup, message: ControlMessage): void;
export declare function showNonValidationMessages(messages: ControlMessage[]): void;
export declare function hideAllValidationMessages(messages: ControlMessage[]): void;
export declare function showActiveValidationMessages(control: Control, messages: ControlMessage[]): void;
export declare function hideInactiveValidationMessages(control: Control, messages: ControlMessage[]): void;
