import { FormControlId, KeyValue, ValidationErrors } from './state'; export interface Action { type: string; } export declare class SetValueAction implements Action { readonly controlId: FormControlId; readonly value: TValue; static readonly TYPE: 'pure-forms/SET_VALUE'; readonly type: "pure-forms/SET_VALUE"; constructor(controlId: FormControlId, value: TValue); } export declare class SetErrorsAction implements Action { readonly controlId: FormControlId; readonly errors: ValidationErrors; static readonly TYPE: 'pure-forms/SET_ERRORS'; readonly type: "pure-forms/SET_ERRORS"; constructor(controlId: FormControlId, errors: ValidationErrors); } export declare class SetAsyncErrorAction implements Action { readonly controlId: FormControlId; readonly name: string; readonly value: any; static readonly TYPE: 'pure-forms/SET_ASYNC_ERROR'; readonly type: "pure-forms/SET_ASYNC_ERROR"; constructor(controlId: FormControlId, name: string, value: any); } export declare class ClearAsyncErrorAction implements Action { readonly controlId: FormControlId; readonly name: string; static readonly TYPE: 'pure-forms/CLEAR_ASYNC_ERROR'; readonly type: "pure-forms/CLEAR_ASYNC_ERROR"; constructor(controlId: FormControlId, name: string); } export declare class StartAsyncValidationAction implements Action { readonly controlId: FormControlId; readonly name: string; static readonly TYPE: 'pure-forms/START_ASYNC_VALIDATION'; readonly type: "pure-forms/START_ASYNC_VALIDATION"; constructor(controlId: FormControlId, name: string); } export declare class MarkAsDirtyAction implements Action { readonly controlId: FormControlId; static readonly TYPE: 'pure-forms/MARK_AS_DIRTY'; readonly type: "pure-forms/MARK_AS_DIRTY"; constructor(controlId: FormControlId); } export declare class MarkAsPristineAction implements Action { readonly controlId: FormControlId; static readonly TYPE: 'pure-forms/MARK_AS_PRISTINE'; readonly type: "pure-forms/MARK_AS_PRISTINE"; constructor(controlId: FormControlId); } export declare class EnableAction implements Action { readonly controlId: FormControlId; static readonly TYPE: 'pure-forms/ENABLE'; readonly type: "pure-forms/ENABLE"; constructor(controlId: FormControlId); } export declare class DisableAction implements Action { readonly controlId: FormControlId; static readonly TYPE: 'pure-forms/DISABLE'; readonly type: "pure-forms/DISABLE"; constructor(controlId: FormControlId); } export declare class MarkAsTouchedAction implements Action { readonly controlId: FormControlId; static readonly TYPE: 'pure-forms/MARK_AS_TOUCHED'; readonly type: "pure-forms/MARK_AS_TOUCHED"; constructor(controlId: FormControlId); } export declare class MarkAsUntouchedAction implements Action { readonly controlId: FormControlId; static readonly TYPE: 'pure-forms/MARK_AS_UNTOUCHED'; readonly type: "pure-forms/MARK_AS_UNTOUCHED"; constructor(controlId: FormControlId); } export declare class FocusAction implements Action { readonly controlId: FormControlId; static readonly TYPE: 'pure-forms/FOCUS'; readonly type: "pure-forms/FOCUS"; constructor(controlId: FormControlId); } export declare class UnfocusAction implements Action { readonly controlId: FormControlId; static readonly TYPE: 'pure-forms/UNFOCUS'; readonly type: "pure-forms/UNFOCUS"; constructor(controlId: FormControlId); } export declare class MarkAsSubmittedAction implements Action { readonly controlId: FormControlId; static readonly TYPE: 'pure-forms/MARK_AS_SUBMITTED'; readonly type: "pure-forms/MARK_AS_SUBMITTED"; constructor(controlId: FormControlId); } export declare class MarkAsUnsubmittedAction implements Action { readonly controlId: FormControlId; static readonly TYPE: 'pure-forms/MARK_AS_UNSUBMITTED'; readonly type: "pure-forms/MARK_AS_UNSUBMITTED"; constructor(controlId: FormControlId); } export declare class AddArrayControlAction implements Action { readonly controlId: FormControlId; readonly value: TValue; readonly index?: number | undefined; static readonly TYPE: 'pure-forms/ADD_ARRAY_CONTROL'; readonly type: "pure-forms/ADD_ARRAY_CONTROL"; constructor(controlId: FormControlId, value: TValue, index?: number | undefined); } export declare class AddGroupControlAction implements Action { readonly controlId: FormControlId; readonly name: keyof TValue; readonly value: TValue[TControlKey]; static readonly TYPE: 'pure-forms/ADD_GROUP_CONTROL'; readonly type: "pure-forms/ADD_GROUP_CONTROL"; constructor(controlId: FormControlId, name: keyof TValue, value: TValue[TControlKey]); } export declare class RemoveArrayControlAction implements Action { readonly controlId: FormControlId; readonly index: number; static readonly TYPE: 'pure-forms/REMOVE_ARRAY_CONTROL'; readonly type: "pure-forms/REMOVE_ARRAY_CONTROL"; constructor(controlId: FormControlId, index: number); } export declare class RemoveGroupControlAction implements Action { readonly controlId: FormControlId; readonly name: keyof TValue; static readonly TYPE: 'pure-forms/REMOVE_CONTROL'; readonly type: "pure-forms/REMOVE_CONTROL"; constructor(controlId: FormControlId, name: keyof TValue); } export declare class SetUserDefinedPropertyAction implements Action { readonly controlId: FormControlId; readonly name: string; readonly value: any; static readonly TYPE: 'pure-forms/SET_USER_DEFINED_PROPERTY'; readonly type: "pure-forms/SET_USER_DEFINED_PROPERTY"; constructor(controlId: FormControlId, name: string, value: any); } export declare class ResetAction implements Action { readonly controlId: FormControlId; static readonly TYPE: 'pure-forms/RESET'; readonly type: "pure-forms/RESET"; constructor(controlId: FormControlId); } export declare type Actions = SetValueAction | SetErrorsAction | SetAsyncErrorAction | ClearAsyncErrorAction | StartAsyncValidationAction | MarkAsDirtyAction | MarkAsPristineAction | EnableAction | DisableAction | MarkAsTouchedAction | MarkAsUntouchedAction | FocusAction | UnfocusAction | MarkAsSubmittedAction | MarkAsUnsubmittedAction | AddGroupControlAction | RemoveGroupControlAction | AddArrayControlAction | RemoveArrayControlAction | SetUserDefinedPropertyAction | ResetAction; export declare function isPureFormsAction(action: Action): boolean;