import { EmitterOutput, ObjectBuilder, Placeholder } from "@typespec/asset-emitter";
import { Enum, IntrinsicType, Model, ModelProperty, Scalar, Union } from "@typespec/compiler";
import { CreateSchemaEmitter } from "./openapi-spec-mappings.js";
import { OpenAPI3SchemaEmitterBase } from "./schema-emitter.js";
import { OpenAPI3Schema } from "./types.js";
export declare const createSchemaEmitter3_0: CreateSchemaEmitter;
/**
 * OpenAPI 3.0 schema emitter. Deals with emitting content of `components/schemas` section.
 */
export declare class OpenAPI3SchemaEmitter extends OpenAPI3SchemaEmitterBase<OpenAPI3Schema> {
    #private;
    applyCustomConstraints(type: Scalar | Model | ModelProperty | Union | Enum, target: ObjectBuilder<OpenAPI3Schema>, refSchema?: OpenAPI3Schema): void;
    applyEncoding(typespecType: Scalar | ModelProperty, target: OpenAPI3Schema | Placeholder<OpenAPI3Schema>): OpenAPI3Schema;
    getRawBinarySchema(): OpenAPI3Schema;
    enumSchema(en: Enum): OpenAPI3Schema;
    unionSchema(union: Union): ObjectBuilder<OpenAPI3Schema>;
    intrinsic(intrinsic: IntrinsicType, name: string): EmitterOutput<object>;
}
//# sourceMappingURL=schema-emitter-3-0.d.ts.map