/**
 * OpenAPI 3.0 Converter for APIDoc 4.0
 *
 * Converts APIDoc parsed data to OpenAPI 3.0 specification
 *
 * @since 4.0.0
 */
interface ApiDocItem {
    type: string;
    url: string;
    title?: string;
    name?: string;
    group?: string;
    description?: string;
    version?: string;
    filename?: string;
    groupTitle?: string;
    groupDescription?: string;
    header?: {
        fields?: {
            Header?: Array<{
                group: string;
                type: string;
                size?: string;
                allowedValues?: string[];
                optional: boolean;
                field: string;
                defaultValue?: string;
                description?: string;
            }>;
        };
    };
    parameter?: {
        fields?: {
            Parameter?: Array<{
                group: string;
                type: string;
                size?: string;
                allowedValues?: string[];
                optional: boolean;
                field: string;
                defaultValue?: string;
                description?: string;
            }>;
            Body?: Array<{
                group: string;
                type: string;
                size?: string;
                allowedValues?: string[];
                optional: boolean;
                field: string;
                defaultValue?: string;
                description?: string;
            }>;
            Query?: Array<{
                group: string;
                type: string;
                size?: string;
                allowedValues?: string[];
                optional: boolean;
                field: string;
                defaultValue?: string;
                description?: string;
            }>;
        };
        examples?: Array<{
            title: string;
            content: string;
            type: string;
        }>;
    };
    success?: {
        fields?: {
            'Success 200'?: Array<{
                group: string;
                type: string;
                size?: string;
                allowedValues?: string[];
                optional: boolean;
                field: string;
                defaultValue?: string;
                description?: string;
            }>;
        };
        examples?: Array<{
            title: string;
            content: string;
            type: string;
        }>;
    };
    error?: {
        fields?: Record<string, Array<{
            group: string;
            type: string;
            size?: string;
            allowedValues?: string[];
            optional: boolean;
            field: string;
            defaultValue?: string;
            description?: string;
        }>>;
        examples?: Array<{
            title: string;
            content: string;
            type: string;
        }>;
    };
}
interface ProjectData {
    name?: string;
    title?: string;
    version?: string;
    description?: string;
    url?: string;
    sampleUrl?: string;
}
interface OpenApiSpec {
    openapi: string;
    info: {
        title: string;
        version: string;
        description?: string;
    };
    servers?: Array<{
        url: string;
        description?: string;
    }>;
    paths: Record<string, any>;
    components?: {
        schemas?: Record<string, any>;
    };
}
/**
 * Converts APIDoc data to OpenAPI 3.0 specification
 */
export declare class OpenApiConverter {
    private swagger;
    constructor();
    /**
     * Main conversion method
     */
    convert(apidocData: ApiDocItem[], projectData: ProjectData): OpenApiSpec;
    /**
     * Adds project information to OpenAPI info object
     */
    private addInfo;
    /**
     * Adds server information from project data
     */
    private addServers;
    /**
     * Removes HTML tags from text
     */
    private removeTags;
    /**
     * Groups API endpoints by URL
     */
    private groupByUrl;
    /**
     * Extracts paths from APIDoc data
     */
    private extractPaths;
    /**
     * Generates a path item for OpenAPI
     */
    private generatePathItem;
    /**
     * Adds parameters to path item
     */
    private addParameters;
    /**
     * Adds request body for POST/PUT/PATCH methods
     */
    private addRequestBody;
    /**
     * Adds responses to path item
     */
    private addResponses;
    /**
     * Generates JSON schema from APIDoc fields
     */
    private generateSchemaFromFields;
    /**
     * Converts APIDoc types to OpenAPI types
     */
    private convertType;
}
/**
 * Convenience function to convert APIDoc data to OpenAPI
 */
export declare function convertToOpenApi(apidocData: ApiDocItem[], projectData: ProjectData): OpenApiSpec;
export {};
//# sourceMappingURL=openapi-converter.d.ts.map