import { FC, ReactNode } from 'react';
import { ITrackingData } from '../../context';
/**
 * Per-panel context the host (outlook-ui) injects when mounting
 * the Slack right-panel. Mirrors EmailLoggerProvider's shape so the
 * Vue→React bridge stays consistent across panels.
 *
 * `connectorId` resolves to the install row for this user-group's
 * Slack connector. The host knows it from its connectors list; we
 * could fetch + match here, but a prop is one round-trip cheaper and
 * keeps the panel rendering immediately on mount.
 */
export interface SlackContextData {
    hiverConvId: string;
    connectorId: string;
    /**
     * Shared mailbox id this conversation belongs to. Required for the
     * Phase 9 effective-config endpoint (`/configs/effective?sm_id=`),
     * which gates whether Slack renders for the current agent + SM.
     * Sourced by the host from the conversation's current SM (first
     * non-personal inbox in outlook-ui's case).
     */
    smId: string;
    isAdmin: boolean;
    /**
     * Gainsight tracking sink, injected by the host (outlook-ui passes
     * its `sendEventData`). Unlike the rest of the agent app, the Slack
     * tab mounts via its own provider stack — NOT MainAppProvider — so
     * tracking is threaded through this context instead. Optional so dev
     * mounts / tests that don't wire analytics fall through to a no-op
     * at the call site (`sendTrackingEvent?.(...)`).
     */
    sendTrackingEvent?: (event: string, data?: ITrackingData) => void;
}
export declare const SlackContextProvider: FC<{
    value: SlackContextData;
    children: ReactNode;
}>;
export declare const useSlackContext: () => SlackContextData;
//# sourceMappingURL=context.d.ts.map