import { Program, Type, Union, EmitContext } from "@typespec/compiler";
import { AnySchema, BooleanSchema, NumberSchema, ObjectSchema, Parameter, Schema, StringSchema } from "@autorest/codemodel";
import { CodeModel } from "./common/code-model.js";
import { EmitterOptions } from "./emitter.js";
import { ProcessingCache } from "./type-utils.js";
export declare class CodeModelBuilder {
    private program;
    private typeNameOptions;
    private namespace;
    private sdkContext;
    private options;
    private codeModel;
    readonly schemaCache: ProcessingCache<Type, Schema>;
    readonly typeUnionRefCache: Map<Type, Union | null | undefined>;
    private operationExamples;
    constructor(program1: Program, context: EmitContext<EmitterOptions>);
    build(): Promise<CodeModel>;
    private processHost;
    private processAuth;
    private isInternal;
    private processModels;
    private processSchemaUsage;
    private deduplicateSchemaName;
    private resolveSchemaUsage;
    private processClients;
    private needToSkipProcessingOperation;
    private processOperation;
    private processRouteForPaged;
    private processLroMetadata;
    private processRouteForLongRunning;
    private processParameter;
    private addAcceptHeaderParameter;
    private processEtagHeaderParameters;
    private processParameterBody;
    private findResponseBody;
    private processResponse;
    private getStatusCodes;
    private getResponseDescription;
    private processSchema;
    private processSchemaImpl;
    private processScalar;
    private processAnySchema;
    private processStringSchema;
    private processByteArraySchema;
    private processIntegerSchema;
    private processNumberSchema;
    private processDecimalSchema;
    private processBooleanSchema;
    private processArraySchema;
    private processDictionarySchema;
    private processChoiceSchema;
    private processConstantSchemaForLiteral;
    private processConstantSchemaForEnumMember;
    private processChoiceSchemaForUnion;
    private processUnixTimeSchema;
    private processDateTimeSchema;
    private processDateSchema;
    private processTimeSchema;
    private processDurationSchema;
    private processUrlSchema;
    private processObjectSchema;
    private getEffectiveSchemaType;
    private applyModelPropertyDecorators;
    private processModelProperty;
    private processFormatString;
    private processUnionSchema;
    private processBinarySchema;
    private getUnionVariantName;
    private getDefaultValue;
    private getDoc;
    private getSummary;
    private getName;
    private getSerializedName;
    private isReadOnly;
    private isSecret;
    private getConvenienceApiName;
    private logWarning;
    private trace;
    private _stringSchema?;
    get stringSchema(): StringSchema;
    private _integerSchema?;
    get integerSchema(): NumberSchema;
    private _doubleSchema?;
    get doubleSchema(): NumberSchema;
    private _booleanSchema?;
    get booleanSchema(): BooleanSchema;
    private _anySchema?;
    get anySchema(): AnySchema;
    private _pollResultSchema?;
    get pollResultSchema(): ObjectSchema;
    private createApiVersionParameter;
    private _apiVersionParameter?;
    get apiVersionParameter(): Parameter;
    private _apiVersionParameterInPath?;
    get apiVersionParameterInPath(): Parameter;
    private propagateSchemaUsage;
    private trackSchemaUsage;
    private isArmLongRunningOperation;
    private isSchemaUsageEmpty;
}
//# sourceMappingURL=code-model-builder.d.ts.map