import { TAction, TRule, TSource, TEngine } from "kwikid-toolkit";
import { TTrigger } from "./form-view.triggers.definition";
export declare enum EApiStatusType {
    DEFAULT = "default",
    LOADING = "loading",
    RETRY = "retry",
    SUCCESS = "success",
    FAILED = "failed"
}
export declare type TApiRequestBodyParam = {
    key: string;
    sources: Array<TSource>;
    value: any;
};
export declare type TApiRequestBody = TEngine & {
    value: any;
    params: Array<TApiRequestBodyParam>;
    validation: TEngine;
};
export declare type TApiRequestHeadersParam = {
    key: string;
    sources: Array<TSource>;
    value: any;
};
export declare type TApiRequestHeaders = TEngine & {
    value: any;
    params: Array<any>;
    validation: TEngine;
};
export declare type TApiTimer = {
    maxTime: number;
    messageWithTimerPlaceholder: string;
    timerChangeType: string;
    timeFormat: string;
    timerStep: number;
};
export declare type TApiRequest = {
    url: string | any;
    method?: string;
    headers?: TApiRequestHeaders;
    body: TApiRequestBody;
};
export declare type TApiResponseBody = any;
export declare type TApiResponse = TEngine & {
    is_valid: boolean;
    body: TApiResponseBody;
    validation: TEngine;
    value?: any;
};
export declare type TApiStatusType = EApiStatusType.DEFAULT | EApiStatusType.LOADING | EApiStatusType.RETRY | EApiStatusType.SUCCESS | EApiStatusType.FAILED;
export declare type TApiStatus = {
    value: TApiStatusType;
    labels: {
        default: EApiStatusType.DEFAULT;
        loading: EApiStatusType.LOADING;
        retry: EApiStatusType.RETRY;
        success: EApiStatusType.SUCCESS;
        failed: EApiStatusType.FAILED;
    };
};
export declare type TApiEntryPoint = {
    triggers: Array<TTrigger>;
    rules: Array<TRule>;
    actions: Array<TAction>;
};
export declare type TApiEndpoint = {
    apiKey: string;
    request: TApiRequest;
    response: TApiResponse;
};
export declare type TApi = {
    request?: TApiRequest;
    response?: TApiResponse;
    entrypoint: TApiEntryPoint;
    endpoints: Array<TApiEndpoint>;
    status: TApiStatus;
    timer?: TApiTimer;
};
export declare enum EApiRequestUrlType {
    MOCK = "MOCK",
    CALCULATED = "CALCULATED"
}
