import { SdkClientType, SdkHttpOperation, SdkHttpParameter, SdkMethodParameter, SdkModelPropertyType } from "@azure-tools/typespec-client-generator-core";
import { Namespace } from "@typespec/compiler";
import { SpawnOptions } from "child_process";
import { CSharpEmitterContext } from "../sdk-context.js";
export declare function execCSharpGenerator(context: CSharpEmitterContext, options: {
    generatorPath: string;
    outputFolder: string;
    generatorName: string;
    newProject: boolean;
    debug: boolean;
}): Promise<{
    exitCode: number;
    stderr: string;
    proc: any;
}>;
export declare function execAsync(command: string, args?: string[], options?: SpawnOptions): Promise<{
    exitCode: number;
    stdio: string;
    stdout: string;
    stderr: string;
    proc: any;
}>;
export declare function getClientNamespaceString(context: CSharpEmitterContext): string | undefined;
export declare function getClientNamespaceStringHelper(namespaceOverride?: string, packageName?: string, namespace?: Namespace): string | undefined;
export declare function firstLetterToUpperCase(str: string): string;
/**
 * Checks if the property or parameter is read-only.
 * @param prop - The property to check.
 * @beta
 */
export declare function isReadOnly(p: SdkModelPropertyType | SdkMethodParameter | SdkHttpParameter): boolean;
/**
 * Determines if the library contains a multiservice client.
 *
 * @param rootClients - Array of root clients from the SDK package
 * @returns True if this is a multiservice client library, false otherwise
 * @beta
 */
export declare function containsMultiServiceClient(rootClients: SdkClientType<SdkHttpOperation>[]): boolean;
/**
 * Determines if a client is a multiservice client.
 * A multiservice client is one where the underlying service is an array of services
 * with more than one element.
 *
 * @param client - The SDK client to check
 * @returns True if this is a multiservice client, false otherwise
 * @beta
 */
export declare function isMultiServiceClient(client: SdkClientType<SdkHttpOperation>): boolean;
//# sourceMappingURL=utils.d.ts.map