import { AnySchema, BinarySchema, BooleanSchema, License, NumberSchema, ObjectSchema, Schema, StringSchema } from "@autorest/codemodel";
import { SdkType } from "@azure-tools/typespec-client-generator-core";
import { EmitContext, Program } from "@typespec/compiler";
import { CodeModel } from "./common/code-model.js";
import { DevOptions, EmitterOptions } from "./options.js";
import { ProcessingCache } from "./type-utils.js";
export interface EmitterOptionsDev {
    flavor?: string;
    namespace?: string;
    "service-name"?: string;
    "service-versions"?: string[];
    license?: License;
    "generate-samples"?: boolean;
    "generate-tests"?: boolean;
    "partial-update"?: boolean;
    "models-subpackage"?: string;
    "custom-types"?: string;
    "custom-types-subpackage"?: string;
    "customization-class"?: string;
    "skip-special-headers"?: string[];
    "enable-subclient"?: boolean;
    "group-etag-headers"?: boolean;
    "enable-sync-stack"?: boolean;
    "stream-style-serialization"?: boolean;
    "use-object-for-unknown"?: boolean;
    polling?: any;
    "api-version"?: string;
    "advanced-versioning"?: boolean;
    "service-version-exclude-preview"?: boolean;
    "dev-options"?: DevOptions;
    "output-dir": string;
    arm?: boolean;
    "license-header"?: string;
}
export declare class CodeModelBuilder {
    private program;
    private typeNameOptions;
    private namespace;
    private baseJavaNamespace;
    private sdkContext;
    private options;
    private codeModel;
    private emitterContext;
    private serviceNamespace;
    private readonly javaNamespaceCache;
    readonly schemaCache: ProcessingCache<SdkType, Schema>;
    private apiVersion;
    constructor(program1: Program, context: EmitContext<EmitterOptions>);
    build(): Promise<CodeModel>;
    private processHostParameters;
    private processAuth;
    private isBranded;
    private isAzureV1;
    private isAzureV2;
    private processModels;
    private processSchemaUsage;
    private deduplicateSchemaName;
    private resolveSchemaUsage;
    private processClients;
    private processClient;
    private listSubClientsUnderClient;
    private needToSkipProcessingOperation;
    /**
     * Whether we support advanced versioning in non-breaking fashion.
     */
    private supportsAdvancedVersioning;
    private getOperationExample;
    private processOperation;
    private processRouteForPaged;
    private processLroMetadata;
    private processRouteForLongRunning;
    private processParameter;
    private processParameterGrouping;
    private processSdkMethodOverride;
    private processGroupSchema;
    private checkGroupingAfterBodyParameterFlatten;
    private processEtagHeaderParameters;
    private processParameterBody;
    private addParameterOrBodyPropertyToCodeModelRequest;
    private processResponse;
    private getStatusCodes;
    private processSchema;
    private processSchemaImpl;
    private processBuiltInType;
    private processAnySchema;
    private processStringSchema;
    private processByteArraySchema;
    private processIntegerSchema;
    private processNumberSchema;
    private processDecimalSchema;
    private processBooleanSchema;
    private processArraySchema;
    private processDictionarySchema;
    private processChoiceSchema;
    private processConstantSchema;
    private processConstantSchemaFromEnumValue;
    private processUnixTimeSchema;
    private processDateTimeSchema;
    private processDateSchema;
    private processTimeSchema;
    private processDurationSchema;
    private processUrlSchema;
    private processObjectSchema;
    private processModelProperty;
    private processUnionSchema;
    private processBinarySchema;
    private getUnionVariantName;
    private processMultipartFormDataFilePropertySchema;
    private getDoc;
    private getSummary;
    private isReadOnly;
    private isSecret;
    private getMutability;
    private getConvenienceApiName;
    private getBaseJavaNamespace;
    private getJavaNamespace;
    private escapeJavaNamespace;
    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 isApiVersionParameter;
    private _apiVersionParameter?;
    private _apiVersionParameterInPath?;
    private _apiVersionParameterInHeader?;
    private _armApiVersionParameter?;
    private getApiVersionParameter;
    private isSubscriptionId;
    private subscriptionIdParameter;
    private _subscriptionParameter?;
    private propagateSchemaUsage;
    private trackSchemaUsage;
    private isArm;
}
//# sourceMappingURL=code-model-builder.d.ts.map