/**
 * Hook to create a block record (ban user from chat).
 *
 * When the caller is the stream owner (agent.did === streamerDID), creates the
 * block record directly via ATProto writes to their repo.
 *
 * When the caller is a delegated moderator, uses the place.stream.moderation.createBlock
 * XRPC endpoint which validates permissions and creates the record using the
 * streamer's OAuth session.
 */
export declare function useCreateBlockRecord(): {
    createBlock: (subjectDID: string, streamerDID?: string) => Promise<import("streamplace/src/lexicons/types/place/stream/moderation/createBlock").Response>;
    isLoading: boolean;
};
/**
 * Hook to create a gate record (hide a chat message).
 *
 * When the caller is the stream owner (agent.did === streamerDID), creates the
 * gate record directly via ATProto writes to their repo.
 *
 * When the caller is a delegated moderator, uses the place.stream.moderation.createGate
 * XRPC endpoint which validates permissions and creates the record using the
 * streamer's OAuth session.
 */
export declare function useCreateHideChatRecord(): {
    createHideChat: (chatMessageUri: string, streamerDID?: string) => Promise<import("streamplace/src/lexicons/types/place/stream/moderation/createGate").Response>;
    isLoading: boolean;
};
/**
 * Hook to update a livestream record (update stream title).
 *
 * When the caller is the stream owner (agent.did === streamerDID), updates the
 * livestream record directly via ATProto writes to their repo.
 *
 * When the caller is a delegated moderator, uses the place.stream.moderation.updateLivestream
 * XRPC endpoint which validates permissions and updates the record using the
 * streamer's OAuth session.
 */
export declare function useUpdateLivestreamRecord(): {
    updateLivestream: (livestreamUri: string, title: string, streamerDID?: string) => Promise<import("streamplace/src/lexicons/types/place/stream/moderation/updateLivestream").Response>;
    isLoading: boolean;
};
//# sourceMappingURL=block.d.ts.map