import type { TrackEventFn } from '../types/contracts/analytics';
import type { Logger } from '../types/contracts/logger';
import type { TeamHookEvent } from '../types/team-hook-events';
import type { DevPhase } from '../types/team-config';
/**
 * Subscribe to all team hook events.
 * Returns an unsubscribe function.
 */
export declare function onTeamHookEvent(listener: (event: TeamHookEvent) => void): () => void;
/**
 * Dispatch a team hook event to all registered listeners.
 * Exported for use in contexts (e.g. CLI) where the full emit helpers
 * cannot be used because a server-side TrackEventFn is not available.
 */
export declare function dispatchTeamHookEvent(event: TeamHookEvent): void;
export declare function emitTeammateIdle(params: {
    agentName: string;
    teamName: string;
    lastTaskId?: string;
    trackEvent: TrackEventFn;
    userId: string;
    logger: Logger;
}): void;
export declare function emitTaskCompleted(params: {
    taskId: string;
    taskSubject: string;
    owner: string;
    teamName: string;
    trackEvent: TrackEventFn;
    userId: string;
    logger: Logger;
}): void;
export declare function emitPhaseTransition(params: {
    teamName: string;
    fromPhase: DevPhase;
    toPhase: DevPhase;
    trackEvent: TrackEventFn;
    userId: string;
    logger: Logger;
}): void;
