export enum IMethod {
    "post",
    "put",
    "get",
    "delete"
}

export type IParamsTypeEnum = "String" | "bool" | "num" | "DateTime" | "object" | "list" | "enum" | "int" | "double" | "dynamic" | "number";
export type IParamsTypeEnum1 = "String" | "bool" | "num" | "DateTime" | "int" | "double";

export type IParamsType = {
    type: IParamsTypeEnum, jsonKey?: string, required?: boolean, desc?: string, enum?: Record<string, string | number>, child?: Record<string, IParamsType> | "String" | "bool" | "num" | "DateTime" | "double" | "int",
    final?: boolean,
    url?: boolean
};

export interface IApiDocFuncInterface {
    body?: Record<string, IParamsType>;
    params?: Record<string, IParamsType>;
    response?: Record<string, IParamsType> | IParamsTypeEnum1 | [Record<string, IParamsType> | IParamsTypeEnum1];
}

export interface IApiDocInterface {
    [key: string]: {
        funcName: string;
        desc?: string;
        contentType?: "json" | "urlencoded" | "formData",
        "post"?: IApiDocFuncInterface;
        "put"?: IApiDocFuncInterface;
        "delete"?: IApiDocFuncInterface;
        "get"?: IApiDocFuncInterface;
    };
}