import { PlaceStreamModerationPermission } from "streamplace";
interface ModeratorRecord {
    uri: string;
    cid: string;
    value: PlaceStreamModerationPermission.Record;
    rkey: string;
}
interface ListModeratorsResult {
    moderators: ModeratorRecord[];
    isLoading: boolean;
    error: string | null;
    refresh: () => void;
}
/**
 * Hook to list all moderators for the current user's stream.
 * Fetches place.stream.moderation.permission records from the user's repo.
 */
export declare function useListModerators(): ListModeratorsResult;
interface AddModeratorParams {
    moderatorDID: string;
    permissions: ("ban" | "hide" | "livestream.manage" | "message.pin")[];
    expirationTime?: string;
}
/**
 * Hook to add a new moderator.
 * Creates a place.stream.moderation.permission record in the current user's repo.
 */
export declare function useAddModerator(): {
    addModerator: (params: AddModeratorParams) => Promise<{
        uri: string;
        cid: string;
    }>;
    isLoading: boolean;
};
/**
 * Hook to remove a moderator.
 * Deletes a place.stream.moderation.permission record by its rkey.
 */
export declare function useRemoveModerator(): {
    removeModerator: (rkey: string) => Promise<void>;
    isLoading: boolean;
};
export {};
//# sourceMappingURL=moderator-management.d.ts.map