export default interface OpenApiDocument {
    openapi: string;
    info: InfoObject;
    servers?: any[];
    paths: PathsObject;
    components?: ComponentsObject;
    security?: any[];
    tags?: any[];
    externalDocs?: any;
}
export interface InfoObject {
    title: string;
    description?: string;
    termsOfService?: string;
    contact?: any;
    license?: any;
    version: string;
}
export interface SchemaObject {
    type?: string;
    items?: SchemaObject;
    properties?: {
        [property: string]: SchemaObject;
    };
    nullable?: boolean;
    required?: string[];
    allOf?: SchemaObject[];
    anyOf?: SchemaObject[];
    oneOf?: SchemaObject[];
    not?: SchemaObject;
    additionalProperties?: boolean | SchemaObject;
}
export interface ComponentsObject {
    schemas?: {
        [index: string]: SchemaObject;
    };
    responses?: {
        [index: string]: any;
    };
    parameters?: {
        [index: string]: any;
    };
    examples?: {
        [index: string]: any;
    };
    requestBodies?: {
        [index: string]: any;
    };
    headers?: {
        [index: string]: any;
    };
    securitySchemes?: {
        [index: string]: any;
    };
    links?: {
        [index: string]: any;
    };
    callbacks?: {
        [index: string]: any;
    };
}
export declare type Operation = "get" | "put" | "post" | "delete" | "options" | "head" | "patch" | "trace";
export interface PathsObject {
    [path: string]: PathItemObject;
}
export interface PathItemObject {
    $ref?: string;
    summary?: string;
    description?: string;
    get?: OperationObject;
    put?: OperationObject;
    post?: OperationObject;
    delete?: OperationObject;
    options?: OperationObject;
    head?: OperationObject;
    patch?: OperationObject;
    trace?: OperationObject;
    servers?: any[];
    parameters?: Array<ParameterObject | ReferenceObject>;
}
export interface OperationObject {
    tags?: string[];
    summary?: string;
    description?: string;
    externalDocs?: any;
    operationId?: any;
    parameters?: Array<ParameterObject | ReferenceObject>;
    requestBody?: RequestBodyObject;
    responses: any;
    callbacks?: any;
    deprecated?: boolean;
    security?: any[];
    servers?: any[];
}
export declare type ParameterLocation = "query" | "header" | "path" | "cookie";
export declare type ParameterStyle = "matrix" | "label" | "form" | "simple" | "spaceDelimited" | "pipeDelimited" | "deepObject";
export interface ParameterObject {
    name: string;
    in: ParameterLocation;
    description?: string;
    required?: boolean;
    deprecated?: boolean;
    allowEmptyValue?: boolean;
    style?: ParameterStyle;
    explode?: boolean;
    allowReserved?: boolean;
    schema?: SchemaObject | ReferenceObject;
    example?: any;
    examples?: {
        [mediaType: string]: any;
    };
    content?: {
        [mediaType: string]: MediaTypeObject;
    };
}
export interface RequestBodyObject {
    description?: string;
    required?: boolean;
    content: {
        [mediaType: string]: MediaTypeObject;
    };
}
export interface MediaTypeObject {
    schema?: SchemaObject | ReferenceObject;
    example?: any;
    examples?: any;
    encoding?: any;
}
export interface ReferenceObject {
    $ref: string;
}
//# sourceMappingURL=OpenApiDocument.d.ts.map