import "../permissions-BBgPgD70.js";
import { Constraints } from "../types-DjbiyvLT.js";
import { z } from "zod";

//#region src/internal/constraint-helpers.d.ts

/**
 * Determines which tool parameter keys should be filtered out of the schema
 * because they will be injected from constraints.
 *
 * Handles parameter aliases: when a projectSlug constraint exists and the tool
 * has a projectSlugOrId parameter, the alias will be applied UNLESS projectSlugOrId
 * is explicitly constrained with a truthy value.
 *
 * @param constraints - The active constraints (org, project, region)
 * @param toolInputSchema - The tool's input schema definition
 * @returns Array of parameter keys that should be filtered from the schema
 *
 * @example
 * ```typescript
 * const constraints = { projectSlug: "my-project", organizationSlug: "my-org" };
 * const schema = { organizationSlug: z.string(), projectSlugOrId: z.string() };
 * const keys = getConstraintKeysToFilter(constraints, schema);
 * // Returns: ["organizationSlug", "projectSlugOrId"]
 * // projectSlugOrId is included because projectSlug constraint will map to it
 * ```
 */
declare function getConstraintKeysToFilter(constraints: Constraints & Record<string, string | null | undefined>, toolInputSchema: Record<string, z.ZodType>): string[];
/**
 * Builds the constraint parameters that should be injected into tool calls.
 *
 * Handles parameter aliases: when a projectSlug constraint exists and the tool
 * has a projectSlugOrId parameter, the constraint value will be injected as
 * projectSlugOrId UNLESS projectSlugOrId is explicitly constrained with a truthy value.
 *
 * @param constraints - The active constraints (org, project, region)
 * @param toolInputSchema - The tool's input schema definition
 * @returns Object mapping parameter names to constraint values
 *
 * @example
 * ```typescript
 * const constraints = { projectSlug: "my-project", organizationSlug: "my-org" };
 * const schema = { organizationSlug: z.string(), projectSlugOrId: z.string() };
 * const params = getConstraintParametersToInject(constraints, schema);
 * // Returns: { organizationSlug: "my-org", projectSlugOrId: "my-project" }
 * // projectSlug constraint is injected as projectSlugOrId parameter
 * ```
 */
declare function getConstraintParametersToInject(constraints: Constraints & Record<string, string | null | undefined>, toolInputSchema: Record<string, z.ZodType>): Record<string, string>;
//# sourceMappingURL=constraint-helpers.d.ts.map
//#endregion
export { getConstraintKeysToFilter, getConstraintParametersToInject };
//# sourceMappingURL=constraint-helpers.d.ts.map