import { SdkContext } from "@azure-tools/typespec-client-generator-core";
import { DecoratedType, Model, Namespace, Operation, Program, Type } from "@typespec/compiler";
import type { DynamicModelDecorator } from "../../../generated-defs/TypeSpec.HttpClient.CSharp.js";
import { ExternalDocs } from "../type/external-docs.js";
/**
 * The fully qualified decorator name pattern for the dynamicModel decorator.
 * This is used in SDK context options to ensure the decorator is properly recognized.
 * @beta
 */
export declare const DYNAMIC_MODEL_DECORATOR_PATTERN = "TypeSpec\\.HttpClient\\.CSharp\\.@dynamicModel";
export declare function getExternalDocs(context: SdkContext, entity: Type): ExternalDocs | undefined;
/**
 * @returns operationId set via the @operationId decorator or `undefined`
 */
export declare function getOperationId(context: SdkContext, entity: Operation): string | undefined;
export declare function hasDecorator(type: DecoratedType, name: string): boolean;
/**
 * Marks a model or namespace as dynamic, indicating it should generate dynamic model code.
 * Can be applied to Model or Namespace types.
 * @param context - The decorator context
 * @param target - The model or namespace to mark as dynamic
 * @beta
 */
export declare const $dynamicModel: DynamicModelDecorator;
/**
 * Check if the given model or namespace is marked as dynamic.
 * @param program - The TypeSpec program
 * @param target - The model or namespace to check
 * @returns true if the target is marked as dynamic, false otherwise
 * @beta
 */
export declare function isDynamicModel(program: Program, target: Model | Namespace): boolean;
//# sourceMappingURL=decorators.d.ts.map