import { DeepPartial } from "@azure-tools/codegen";
import { Info, Metadata, OperationGroup, Parameter, Schemas, Security } from "@autorest/codemodel";
import { Client } from "./client.js";
/** the model that contains all the information required to generate a service api */
export interface CodeModel extends Metadata {
    /** Code model information */
    info: Info;
    /** All schemas for the model */
    schemas: Schemas;
    /** All operations  */
    operationGroups: Array<OperationGroup>;
    /** all global parameters (ie, ImplementationLocation = client ) */
    globalParameters?: Array<Parameter>;
    security: Security;
    clients: Array<Client>;
}
export declare class CodeModel extends Metadata implements CodeModel {
    constructor(title: string, sourceTracking?: boolean, objectInitializer?: DeepPartial<CodeModel>);
    private get globals();
    getOperationGroup(group: string): OperationGroup;
    findGlobalParameter(predicate: (value: Parameter) => boolean): Parameter | undefined;
    addGlobalParameter(parameter: Parameter): Parameter;
    addGlobalParameter(find: (value: Parameter) => boolean, create: () => Parameter): Parameter;
}
export type ValueOrFactory<T> = T | (() => T);
//# sourceMappingURL=code-model.d.ts.map