import { BehaviorSubject } from 'rxjs';
import { CustomMessageActionItem, DefaultStreamChatGenerics, MessageActionItem, MessageActionsClickDetails, MessageReactionActionItem, StreamMessage } from './types';
import { ChatClientService } from './chat-client.service';
import { NotificationService } from './notification.service';
import { ChannelService } from './channel.service';
import * as i0 from "@angular/core";
/**
 * The message actions service provides customization options for the [message actions](/chat/docs/sdk/angular/components/MessageActionsBoxComponent)
 */
export declare class MessageActionsService<T extends DefaultStreamChatGenerics = DefaultStreamChatGenerics> {
    private chatClientService;
    private notificationService;
    private channelService;
    /**
     * Default actions - these are the actions that are handled by the built-in component
     */
    readonly defaultActions: (MessageActionItem<T> | MessageReactionActionItem<T>)[];
    /**
     * The built-in components will handle changes to this observable.
     */
    messageToEdit$: BehaviorSubject<StreamMessage<T> | undefined>;
    /**
     * You can pass your own custom actions that will be displayed inside the built-in message actions component
     */
    customActions$: BehaviorSubject<CustomMessageActionItem[]>;
    /**
     * By default the [`MessageComponent`](/chat/docs/sdk/angular/components/MessageComponent/) will display the [`MessageActionsBoxComponent`](/chat/docs/sdk/angular/components/MessageActionsBoxComponent/). You can override that behavior by providing your own event handler.
     */
    customActionClickHandler?: (details: MessageActionsClickDetails<T>) => void;
    /**
     * @internal
     */
    messageMenuOpenedFor$: BehaviorSubject<string | undefined>;
    private hasDisplayedClipboardWarning;
    constructor(chatClientService: ChatClientService, notificationService: NotificationService, channelService: ChannelService);
    /**
     * This method returns how many authorized actions are available to the given message
     * @param message
     * @param enabledActions
     * @returns the count
     */
    getAuthorizedMessageActionsCount(message: StreamMessage<T>, enabledActions: string[]): number;
    static ɵfac: i0.ɵɵFactoryDeclaration<MessageActionsService<any>, never>;
    static ɵprov: i0.ɵɵInjectableDeclaration<MessageActionsService<any>>;
}
