import { AnySchema, BinarySchema, BooleanSchema, NumberSchema, ObjectSchema, Parameter, Schema, StringSchema } from "@autorest/codemodel";
import { SdkType } from "@azure-tools/typespec-client-generator-core";
import { EmitContext, Program, Type, Union } from "@typespec/compiler";
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;
    private emitterContext;
    private serviceNamespace;
    private loggingEnabled;
    readonly schemaCache: ProcessingCache<SdkType, Schema>;
    readonly typeUnionRefCache: Map<Type, Union | null | undefined>;
    private apiVersion;
    constructor(program1: Program, context: EmitContext<EmitterOptions>);
    build(): Promise<CodeModel>;
    private processHostParameters;
    private processAuth;
    private isBranded;
    private processModels;
    private processSchemaUsage;
    private deduplicateSchemaName;
    private resolveSchemaUsage;
    private processClients;
    private listSubClientsUnderClient;
    private listServiceMethodsUnderClient;
    /**
     * Filter api-versions for "ServiceVersion".
     * TODO(xiaofei) pending TCGC design: https://github.com/Azure/typespec-azure/issues/965
     *
     * @param pinnedApiVersion the api-version to use as filter base
     * @param versions api-versions to filter
     * @returns filtered api-versions
     */
    private getFilteredApiVersions;
    private needToSkipProcessingOperation;
    /**
     * Whether we support advanced versioning in non-breaking fashion.
     */
    private supportsAdvancedVersioning;
    private getOperationExample;
    private processOperation;
    private processRouteForPaged;
    private processLroMetadata;
    private processRouteForLongRunning;
    private _armApiVersionParameter?;
    private processParameter;
    private processEtagHeaderParameters;
    private processParameterBody;
    private addParameterOrBodyPropertyToCodeModelRequest;
    private findResponseBody;
    private processResponse;
    private getStatusCodes;
    private processSchemaFromSdkType;
    private processSchemaFromSdkTypeImpl;
    private processBuiltInFromSdkType;
    private processAnySchemaFromSdkType;
    private processStringSchemaFromSdkType;
    private processByteArraySchemaFromSdkType;
    private processIntegerSchemaFromSdkType;
    private processNumberSchemaFromSdkType;
    private processDecimalSchemaFromSdkType;
    private processBooleanSchemaFromSdkType;
    private processArraySchemaFromSdkType;
    private processDictionarySchemaFromSdkType;
    private processChoiceSchemaFromSdkType;
    private processConstantSchemaFromSdkType;
    private processConstantSchemaFromEnumValueFromSdkType;
    private processUnixTimeSchemaFromSdkType;
    private processDateTimeSchemaFromSdkType;
    private processDateSchemaFromSdkType;
    private processTimeSchemaFromSdkType;
    private processDurationSchemaFromSdkType;
    private processUrlSchemaFromSdkType;
    private processObjectSchemaFromSdkType;
    private getEffectiveSchemaType;
    private processModelPropertyFromSdkType;
    private processUnionSchemaFromSdkType;
    private processBinarySchemaFromSdkType;
    private getUnionVariantName;
    private processMultipartFormDataFilePropertySchemaFromSdkType;
    private getDoc;
    private getSummary;
    private getSerializedName;
    private isReadOnly;
    private isSecret;
    private getMutability;
    private getConvenienceApiName;
    private getJavaNamespace;
    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 _binarySchema?;
    get binarySchema(): BinarySchema;
    private _pollResultSchema?;
    get pollResultSchema(): ObjectSchema;
    private createApiVersionParameter;
    private _apiVersionParameter?;
    get apiVersionParameter(): Parameter;
    private _apiVersionParameterInPath?;
    get apiVersionParameterInPath(): Parameter;
    private isSubscriptionId;
    private subscriptionIdParameter;
    private _subscriptionParameter?;
    private propagateSchemaUsage;
    private trackSchemaUsage;
    private isArm;
}
//# sourceMappingURL=code-model-builder.d.ts.map