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 useDeleteIamPolicy}. */
export interface UseDeleteIamPolicyReturn {
    /** Revoke access by deleting an IAM policy binding. */
    readonly remove: (spec: IamPolicySpec) => Promise<IamPolicy>;
    /** `true` while the delete request is in flight. */
    readonly isDeleting: boolean;
    /** Error from the last failed delete, or `null` when healthy. */
    readonly error: Error | null;
    /** Reset `error` to `null`. */
    readonly clearError: () => void;
}
/**
 * Behavior hook that wraps `iamPolicy.delete()` with loading/error
 * state.
 *
 * Removes an IAM policy binding — revoking a principal's role on a
 * resource. The caller provides the same {@link IamPolicySpec} that was
 * used when creating the binding.
 *
 * @example
 * ```tsx
 * const { remove, isDeleting, error } = useDeleteIamPolicy();
 *
 * await remove({
 *   principal: { kind: "identity_account", id: accountId },
 *   resource: { kind: "organization", id: orgId },
 *   relation: "admin",
 * });
 * ```
 */
export declare function useDeleteIamPolicy(): UseDeleteIamPolicyReturn;
//# sourceMappingURL=useDeleteIamPolicy.d.ts.map