import { ApiResourceVisibility } from "@stigmer/protos/ai/stigmer/commons/apiresource/enum_pb";
/** Resource kinds that support the `updateVisibility` RPC. */
export type VisibilityResourceKind = "skill" | "agent" | "mcpServer";
/** Return value of {@link useUpdateVisibility}. */
export interface UseUpdateVisibilityReturn {
    /**
     * Call the `updateVisibility` RPC for the specified resource.
     * Resolves when the server confirms the change.
     */
    readonly updateVisibility: (visibility: ApiResourceVisibility) => Promise<void>;
    /** `true` while the RPC is in flight. */
    readonly isPending: boolean;
    /** The last error from the RPC, or `null`. */
    readonly error: Error | null;
}
/**
 * Behavior hook that updates the visibility of a Skill, Agent, or
 * MCP Server.
 *
 * Wraps the generated `stigmer.{kind}.updateVisibility()` SDK method
 * with loading and error state management. The hook is stateless with
 * respect to the resource — the caller is responsible for refreshing
 * the resource after a successful update (e.g., via `refetch` from
 * the corresponding data hook).
 *
 * Pass `null` for `resourceId` to produce a stable no-op (useful when
 * the resource hasn't loaded yet).
 *
 * @example
 * ```tsx
 * const { updateVisibility, isPending } = useUpdateVisibility("skill", skill.metadata.id);
 *
 * <VisibilityToggle
 *   visibility={skill.metadata.visibility}
 *   onVisibilityChange={updateVisibility}
 *   isPending={isPending}
 * />
 * ```
 */
export declare function useUpdateVisibility(kind: VisibilityResourceKind, resourceId: string | null): UseUpdateVisibilityReturn;
//# sourceMappingURL=useUpdateVisibility.d.ts.map