import { HttpMethod } from '../../repository';
import { FieldSubTypeEnum } from '../enums/field-subtype.enum';
import { FieldTypeEnum } from '../enums/field-type.enum';
export interface SchemaModel {
    type: string;
    page: Page;
    [key: string]: any;
}
export interface ActionModel {
    action: string;
    name: string;
    is_enable: boolean;
    type: string;
    color?: string;
}
export interface Page {
    title: string;
    actions: ActionModel[];
}
export interface WorkflowModel {
    keys: string[];
    name: string;
    description?: string;
    isValid: boolean;
}
export interface ActionSchemaModel {
    api: ApiSchemaModel;
    response_fields: FieldTypeModel[];
    workflows: WorkflowModel[];
    actions: ActionModel[];
    confirmation?: ConfirmationData;
}
export interface ApiSchemaModel {
    url: string;
    type?: string;
    path: string;
    required_fields: Record<string, any>[];
    request_fields: FieldTypeModel[];
    method: HttpMethod;
    limit?: number;
}
export interface ConfirmationData {
    title: string;
    description: string;
    messageSuccess: string;
    buttonText: string;
}
export interface FieldTypeModel {
    type: FieldTypeEnum;
    key: string;
    label?: string;
    max_length: number;
    show?: boolean;
    type_sub: FieldSubTypeEnum;
    is_required?: boolean;
    select_options?: SelectOptionsModel;
    related_fields?: string[];
    refresh_change_fields?: string[];
    array_fields?: FieldTypeModel[];
    errorText?: string;
    value?: any;
    html?: HtmlModel;
}
export interface SelectOptionsModel {
    field_display?: string;
    responseFields: FieldTypeModel[];
    values?: {
        [key: string]: any;
    }[];
    field_submit?: string;
    api?: ApiSchemaModel;
}
export declare const ConfirmationData: {
    fromJson(json: any): ConfirmationData;
};
export interface HtmlModel {
    placeholder?: string;
    disabled?: boolean;
    read_only?: boolean;
    col?: number;
}
