import { ChatMessageViewHydrated } from "streamplace";
export declare enum SystemMessageType {
    stream_start = "stream_start",
    stream_end = "stream_end",
    notification = "notification",
    command_error = "command_error"
}
export interface SystemMessageMetadata {
    username?: string;
    action?: string;
    count?: number;
    duration?: string;
    reason?: string;
    streamerName?: string;
}
export declare const createSystemMessage: (type: SystemMessageType, text: string, metadata?: SystemMessageMetadata, date?: Date) => ChatMessageViewHydrated;
/**
 * System message factory functions for common scenarios
 */
export declare const SystemMessages: {
    streamStart: (streamerName: string) => ChatMessageViewHydrated;
    streamEnd: (duration?: string) => ChatMessageViewHydrated;
    teleportArrival: (streamerName: string, streamerDid: string, count: number, chatProfile?: any) => ChatMessageViewHydrated;
    notification: (message: string) => ChatMessageViewHydrated;
    commandError: (message: string) => ChatMessageViewHydrated;
};
/**
 * Checks if a message is a system message
 * @param message The message to check
 * @returns True if the message is a system message
 */
export declare const isSystemMessage: (message: ChatMessageViewHydrated) => boolean;
/**
 * Gets the system message type from a message
 * @param message The message to check
 * @returns The system message type or null if not a system message
 */
export declare const getSystemMessageType: (message: ChatMessageViewHydrated) => SystemMessageType | null;
/**
 * Parses metadata from a system message based on its type
 * @param message The system message to parse
 * @returns The parsed metadata
 */
export declare const parseSystemMessageMetadata: (message: ChatMessageViewHydrated) => SystemMessageMetadata;
//# sourceMappingURL=system-messages.d.ts.map