import { DecoratorInfo, SdkModelPropertyTypeBase, SdkType } from "@azure-tools/typespec-client-generator-core";
import { CSharpEmitterContext } from "../sdk-context.js";
import { InputArrayType, InputDateTimeType, InputDictionaryType, InputDurationType, InputEnumType, InputEnumValueType, InputLiteralType, InputModelType, InputNamespace, InputNullableType, InputPrimitiveType, InputUnionType } from "../type/input-type.js";
type InputReturnType<T extends SdkType> = T extends {
    kind: "nullable";
} ? InputNullableType : T extends {
    kind: "model";
} ? InputModelType : T extends {
    kind: "enum";
} ? InputEnumType : T extends {
    kind: "enumvalue";
} ? InputEnumValueType : T extends {
    kind: "dict";
} ? InputDictionaryType : T extends {
    kind: "array";
} ? InputArrayType : T extends {
    kind: "constant";
} ? InputLiteralType : T extends {
    kind: "union";
} ? InputUnionType : T extends {
    kind: "utcDateTime" | "offsetDateTime";
} ? InputDateTimeType : T extends {
    kind: "duration";
} ? InputDurationType : T extends {
    kind: "tuple";
} ? InputPrimitiveType & {
    kind: "unknown";
} : T extends {
    kind: "credential";
} ? InputPrimitiveType & {
    kind: "unknown";
} : T extends {
    kind: "endpoint";
} ? InputPrimitiveType & {
    kind: "string";
} : InputPrimitiveType;
export declare function fromSdkType<T extends SdkType>(sdkContext: CSharpEmitterContext, sdkType: T, sdkProperty?: SdkModelPropertyTypeBase, namespace?: string): InputReturnType<T>;
/**
 * @beta
 */
export declare function getAllModelDecorators(namespace: InputNamespace, modelDecorators?: DecoratorInfo[]): DecoratorInfo[];
export {};
//# sourceMappingURL=type-converter.d.ts.map