import type { IamPolicy } from "@stigmer/protos/ai/stigmer/iam/iampolicy/v1/api_pb";
import type { IamPolicySpec } from "@stigmer/protos/ai/stigmer/iam/iampolicy/v1/spec_pb";
/** Return value of {@link useCreateIamPolicy}. */
export interface UseCreateIamPolicyReturn {
    /** Grant access by creating an IAM policy binding. */
    readonly create: (spec: IamPolicySpec) => Promise<IamPolicy>;
    /** `true` while the create request is in flight. */
    readonly isCreating: boolean;
    /** Error from the last failed create, or `null` when healthy. */
    readonly error: Error | null;
    /** Reset `error` to `null`. */
    readonly clearError: () => void;
}
/**
 * Behavior hook that wraps `iamPolicy.create()` with loading/error
 * state.
 *
 * Creates an IAM policy binding — granting a principal (identity
 * account, team, etc.) a specific role on a resource. The caller
 * provides the full {@link IamPolicySpec} with `principal`, `resource`,
 * and `relation` (the role string, e.g. "admin").
 *
 * @example
 * ```tsx
 * const { create, isCreating, error } = useCreateIamPolicy();
 *
 * await create({
 *   principal: { kind: "identity_account", id: accountId },
 *   resource: { kind: "organization", id: orgId },
 *   relation: "admin",
 * });
 * ```
 */
export declare function useCreateIamPolicy(): UseCreateIamPolicyReturn;
//# sourceMappingURL=useCreateIamPolicy.d.ts.map