import { Project as codeDomProject } from '#csharp/code-dom/project';
import { Dictionary } from '#common/dictionary';
import { Namespace } from '#csharp/code-dom/namespace';
import { Schema } from '#csharp/lowlevel-generator/code-model';
import { SchemaDefinitionResolver } from '#csharp/schema/schema-resolver';
import { ModuleClass } from '#powershell/module-class';
import { State } from './state';
export declare class ServiceNamespace extends Namespace {
    state: State;
    moduleClass: ModuleClass;
    readonly outputFolder: string;
    constructor(state: State, objectInitializer?: Partial<ServiceNamespace>);
}
export declare class ModelExtensionsNamespace extends Namespace {
    private schemas;
    private state;
    readonly outputFolder: string;
    resolver: SchemaDefinitionResolver;
    constructor(parent: Namespace, schemas: Dictionary<Schema>, state: State, objectInitializer?: Partial<ModelExtensionsNamespace>);
}
export declare class ModelCmdletNamespace extends Namespace {
    private state;
    inputModels: import("#common/code-model/exports").SchemaT<import("#csharp/lowlevel-generator/code-model").LanguageDetails<import("#csharp/lowlevel-generator/code-model").SchemaDetails>, import("#csharp/lowlevel-generator/code-model").LanguageDetails<import("#csharp/lowlevel-generator/code-model").PropertyDetails>>[];
    readonly outputFolder: string;
    constructor(parent: Namespace, state: State, objectInitializer?: Partial<ModelCmdletNamespace>);
    createModelCmdlets(): void;
    addInputSchema(schema: Schema): void;
}
export declare class CmdletNamespace extends Namespace {
    private state;
    inputModels: import("#common/code-model/exports").SchemaT<import("#csharp/lowlevel-generator/code-model").LanguageDetails<import("#csharp/lowlevel-generator/code-model").SchemaDetails>, import("#csharp/lowlevel-generator/code-model").LanguageDetails<import("#csharp/lowlevel-generator/code-model").PropertyDetails>>[];
    readonly outputFolder: string;
    constructor(parent: Namespace, state: State, objectInitializer?: Partial<CmdletNamespace>);
}
export declare class Project extends codeDomProject {
    protected state: State;
    azure: boolean;
    cmdletFolder: string;
    modelCmdletFolder: string;
    customFolder: string;
    runtimefolder: string;
    moduleName: string;
    csproj: string;
    psd1: string;
    psm1: string;
    apifolder: string;
    apiextensionsfolder: string;
    moduleFolder: string;
    schemaDefinitionResolver: SchemaDefinitionResolver;
    maxInlinedParameters: number;
    skipModelCmdlets: boolean;
    constructor(state: State);
    init(): Promise<this>;
    serviceNamespace: ServiceNamespace;
    cmdlets: CmdletNamespace;
    modelCmdlets: ModelCmdletNamespace;
    modelsExtensions: ModelExtensionsNamespace;
}
//# sourceMappingURL=project.d.ts.map