import type { ExtractPropTypes } from 'vue';
import type ApiComponent from '../api-component.vue';
import type { IJsonXmlItem } from './';
export type IMethod = 'GET' | 'POST' | 'PUT' | 'DELETE';
export type IValueType = 'string' | 'integer' | 'boolean' | 'number' | 'array' | null | any;
export interface IParam {
    required?: boolean;
    name?: string;
    value?: string;
    type?: IValueType;
    static?: boolean;
    contentType?: string;
    description?: string;
    chineseName?: string;
    children?: IParam[];
    [key: string]: any;
}
export declare const DEFAULT_METHOD = "GET";
export declare const requestList: {
    key: string;
    name: string;
}[];
export declare const bodyList: {
    key: string;
    name: string;
}[];
export interface IApiParams {
    url?: string;
    method?: IMethod;
    requestParams?: IParam[];
    headerParams?: IParam[];
    bodyParams?: Record<string, any>;
}
export type BodyParams = {
    type: 'none' | 'form-data' | 'json' | 'xml' | 'raw' | 'x-www-form-urlencoded';
    parameters: IParam[];
    jsonSchema: IJsonXmlItem[];
    description: string;
};
export type HttpModel = {
    url: string;
    method: IMethod;
    requestParams: IParam[];
    headerParams: IParam[];
    bodyParams: BodyParams;
};
export declare const apiComponentProps: {
    readonly value: import("ll-plus/es/utils").EpPropFinalized<import("vue").PropType<HttpModel>, unknown, unknown, () => {
        url: string;
        method: string;
        requestParams: any[];
        headerParams: any[];
        bodyParams: {
            type: string;
            parameters: any[];
            jsonSchema: any[];
            description: string;
        };
    }, boolean>;
    readonly disabled: import("ll-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, false, boolean>;
    readonly isValid: import("ll-plus/es/utils").EpPropFinalized<BooleanConstructor, unknown, unknown, false, boolean>;
    readonly rules: import("ll-plus/es/utils").EpPropFinalized<import("vue").PropType<{
        [k: string]: import("ant-design-vue/es/form").RuleObject | import("ant-design-vue/es/form").RuleObject[];
    }>, unknown, unknown, () => {
        url: ({
            required: boolean;
            trigger: string;
            message: string;
            pattern?: undefined;
        } | {
            trigger: string;
            pattern: RegExp;
            message: string;
            required?: undefined;
        })[];
    }, boolean>;
};
export declare const apiComponentEmits: {
    change: (value: HttpModel) => boolean;
    'update:value': (value: HttpModel) => boolean;
};
export type ApiComponentProps = ExtractPropTypes<typeof apiComponentProps>;
export type ApiComponentEmits = typeof apiComponentEmits;
export type ApiComponentInstance = InstanceType<typeof ApiComponent>;
