import { AutoBeOpenApi, AutoBeRealizeAuthorization } from "@autobe/interface";
/**
 * Generate TypeScript type definition string for provider function props
 *
 * This utility creates the exact props interface that the Realize Agent's
 * generated provider functions must accept. It combines:
 *
 * - Authentication context (user/admin/member from authorization)
 * - URL path parameters (e.g., id, boardId, postId)
 * - Request body type (if applicable)
 *
 * The output is injected into REALIZE_WRITE_ARTIFACT.md template to tell the AI
 * exactly what parameter type the function should accept.
 *
 * @example
 *   // For DELETE /posts/:id (authenticated)
 *   // Returns: "props: { user: IUser; id: string & tags.Format<'uuid'>; }"
 *
 * @example
 *   // For GET /public/info (no auth, no params)
 *   // Returns: "// No props parameter needed - function should have no parameters"
 *
 * @param operation - OpenAPI operation definition containing parameters and
 *   auth requirements
 * @param authorization - Authorization context with user/role information (if
 *   authenticated endpoint)
 * @returns TypeScript interface string like "props: { user: IUser; id: string;
 *   body: IRequest; }"
 */
export declare function getRealizeWriteInputType(operation: AutoBeOpenApi.IOperation, authorization: AutoBeRealizeAuthorization | null): string;
