import type { LocalMessage } from 'stream-chat';
import type { ReactEventHandler } from '../types';
export type PinEnabledUserRoles<T extends string = string> = Partial<Record<T, boolean>> & {
    admin?: boolean;
    anonymous?: boolean;
    channel_member?: boolean;
    channel_moderator?: boolean;
    guest?: boolean;
    member?: boolean;
    moderator?: boolean;
    owner?: boolean;
    user?: boolean;
};
export type PinPermissions<T extends string = string, U extends string = string> = Partial<Record<T, PinEnabledUserRoles<U>>> & {
    commerce?: PinEnabledUserRoles<U>;
    gaming?: PinEnabledUserRoles<U>;
    livestream?: PinEnabledUserRoles<U>;
    messaging?: PinEnabledUserRoles<U>;
    team?: PinEnabledUserRoles<U>;
};
export type PinMessageNotifications = {
    getErrorNotification?: (message: LocalMessage) => string;
    notify?: (notificationText: string, type: 'success' | 'error') => void;
};
export declare const usePinHandler: (message: LocalMessage, _permissions?: PinPermissions, notifications?: PinMessageNotifications) => {
    canPin: boolean;
    handlePin: ReactEventHandler;
};
