import * as client from './client.js';
import * as result from './result.js';
import * as type from './type.js';
export interface CodeModel {
    info: Info;
    host?: string;
    type: CodeModelType;
    packageName: string;
    options: Options;
    models: Array<type.ModelType | type.PolymorphicType>;
    constants: Array<type.ConstantType>;
    clients: Array<client.Client>;
    paramGroups: Array<type.StructType>;
    responseEnvelopes: Array<result.ResponseEnvelope>;
    interfaceTypes: Array<type.InterfaceType>;
}
export type CodeModelType = 'azure-arm' | 'data-plane';
export interface Info {
    title: string;
}
export interface Options {
    headerText: string;
    generateFakes: boolean;
    injectSpans: boolean;
    disallowUnknownFields: boolean;
    containingModule?: string;
    module?: Module;
    azcoreVersion?: string;
    rawJSONAsBytes: boolean;
    sliceElementsByval: boolean;
    generateExamples: boolean;
    factoryGatherAllParams: boolean;
}
export interface Module {
    name: string;
    version: string;
}
export declare class Info implements Info {
    constructor(title: string);
}
export declare class Options implements Options {
    constructor(headerText: string, generateFakes: boolean, injectSpans: boolean, disallowUnknownFields: boolean, generateExamples: boolean);
}
export declare class Module implements Module {
    constructor(name: string, version: string);
}
export declare class CodeModel implements CodeModel {
    constructor(info: Info, type: CodeModelType, packageName: string, options: Options);
    sortContent(): void;
}
//# sourceMappingURL=package.d.ts.map