import { Maybe } from 'graphql/jsutils/Maybe';
import { Agent, Ai, ClientQuery, Integration, Message, Tag } from '../../../graphql.autogenerated';
import { ActionItem } from '@bcrumbs.net/bc-ui';
export type ConvsFilters = {
    ended?: boolean;
    clientId?: string;
    assigneeId?: string | null;
    aiId?: string | null;
    stageId?: string | null;
    nameOrPhone?: string;
    integrationId?: string | null;
};
export interface AgentConversationCounts {
    total: number;
    unassigned: number;
    byAgentId: Record<string, number>;
}
interface BuildAgentsMenuOptions {
    agents: Agent[];
    myAgent: Agent | undefined;
    selectedAgentId: string | null | undefined;
    selectedAiId: string | null | undefined;
    onAgentSelect: (agentId: string, agentName?: string) => void;
    onCrumbySelect: (crumbyId: string, crumbyName?: string) => void;
    onUnassigneeSelect?: () => void;
    t: any;
    crumbyAi?: Ai;
    includeAllOption?: boolean;
    onAllSelect?: () => void;
    addSeparatorAtLast?: boolean;
    counts?: AgentConversationCounts;
    showAllAgents?: boolean;
    isCrumbyEnabled?: boolean;
}
interface BuildLifeCycleMenuOptions {
    convStages: Tag[];
    selectedStageId: string | null | undefined;
    onStageSelect: (stageId: string | undefined, stageTag: string) => void;
    t: any;
    addSeparatorAtLast?: boolean;
}
export declare function getNumOfNewClientMessages(messages: Maybe<Message[]> | undefined): number;
export declare function getLastMessage(messages: Maybe<Message[]> | undefined, filterFn?: (m: Message) => boolean): Message | undefined;
export declare function hashStatuses(messages?: Maybe<Message[]> | null): string;
export declare function isOutside24HourWindow(message: Message | null | undefined): boolean;
export declare function formatSeconds(value: number): string;
export declare const getMessageStatusIcon: (message: Message | null | undefined) => import("@emotion/react/jsx-runtime").JSX.Element | null;
export declare const getDisplayName: (clientData: ClientQuery['client'] | undefined) => string;
export declare const buildAgentsMenu: ({ agents, myAgent, selectedAgentId, selectedAiId, onAgentSelect, onCrumbySelect, onUnassigneeSelect, t, includeAllOption, onAllSelect, addSeparatorAtLast, counts, crumbyAi, showAllAgents, isCrumbyEnabled, }: BuildAgentsMenuOptions) => ActionItem[];
export declare const buildLifeCycleMenu: ({ convStages, selectedStageId, onStageSelect, t, addSeparatorAtLast, }: BuildLifeCycleMenuOptions) => ActionItem[];
export declare const formatPhoneForWhatsApp: (phone: string | null | undefined) => string;
interface BuildChannelsMenuOptions {
    integrations: Integration[];
    selectedIntegrationId: string | null | undefined;
    onIntegrationSelect: (id: string) => void;
    onAllSelect: () => void;
    t: any;
}
export declare const buildChannelsMenu: ({ integrations, selectedIntegrationId, onIntegrationSelect, onAllSelect, t, }: BuildChannelsMenuOptions) => ActionItem[];
export {};
