import { Session, AutorestExtensionHost } from "@autorest/extension-base";
import { Model as oai3, Refable, Schema } from "@azure-tools/openapi";
import { Interpretations } from "../modeler/interpretations";
export declare function processRequest(host: AutorestExtensionHost): Promise<void>;
export declare class QualityPreChecker {
    protected session: Session<oai3>;
    input: oai3;
    private options;
    protected interpret: Interpretations;
    constructor(session: Session<oai3>);
    private resolve;
    getProperties(schema: Schema): {
        key: string;
        name: string;
        property: (import("@azure-tools/openapi").PropertyDetails & import("@azure-tools/openapi").PathReference) | (import("@azure-tools/openapi").PropertyDetails & Schema);
    }[];
    getSchemasFromArray(tag: string, schemas: Array<Refable<Schema>> | undefined): Iterable<{
        name: string;
        schema: Schema;
        tag: string;
    }>;
    getAllParents(tag: string, schema: Schema): Iterable<{
        name: string;
        schema: Schema;
        tag: string;
    }>;
    getGrandParents(tag: string, schema: Schema): Iterable<{
        name: string;
        schema: Schema;
        tag: string;
    }>;
    checkForHiddenProperties(schemaName: string, schema: Schema, completed?: WeakSet<Schema>): void;
    checkForDuplicateParents(schemaName: string, schema: Schema, completed?: WeakSet<Schema>): void;
    checkForDuplicateSchemas(): void;
    fixUpSchemasThatUseAllOfInsteadOfJustRef(): void;
    fixUpObjectsWithoutType(): void;
    isEmptyObjectSchema(schema: Schema): boolean;
    fixUpSchemasWithEmptyObjectParent(): void;
    private checkParentSameType;
    process(): import("@azure-tools/openapi").OpenAPI3Document;
    private listSchemas;
}
//# sourceMappingURL=prechecker.d.ts.map