import { ExtensionMessage, MessageResponse } from './ExtensionMessageTypes'; /** * Generate unique message ID * * @returns Unique message ID string */ export declare function generateMessageId(): string; /** * Create message with standard structure * * @param type - Message type * @param payload - Optional message payload * @param tabId - Optional tab identifier * @returns Structured message object * * @example * ```typescript * const message = createMessage('START_SESSION', { config: { appId: 'test' } }); * ``` */ export declare function createMessage(type: string, payload?: any, tabId?: number): T; /** * Send message with promise-based response * * Uses chrome.runtime.sendMessage with async/await pattern. * * @param message - Message to send * @returns Promise resolving to response * @throws Error if message sending fails or extension context is invalid * * @example * ```typescript * const response = await sendMessageWithResponse(message); * if (response.success) { * console.log('Success:', response.data); * } * ``` */ export declare function sendMessageWithResponse(message: ExtensionMessage): Promise; /** * Send message to specific tab * * @param tabId - Target tab ID * @param message - Message to send * @returns Promise resolving to response * @throws Error if tab is invalid or message fails * * @example * ```typescript * await sendMessageToTab(123, message); * ``` */ export declare function sendMessageToTab(tabId: number, message: ExtensionMessage): Promise; /** * Broadcast message to all tabs * * @param message - Message to broadcast * @returns Promise resolving when all messages sent * * @example * ```typescript * await broadcastMessage(stateUpdate); * ``` */ export declare function broadcastMessage(message: ExtensionMessage): Promise; /** * Create success response * * @param data - Optional response data * @returns Success response object */ export declare function createSuccessResponse(data?: any): MessageResponse; /** * Create error response * * @param error - Error message or Error object * @returns Error response object */ export declare function createErrorResponse(error: string | Error): MessageResponse; /** * Validate message structure * * @param message - Message to validate * @returns True if message is valid */ export declare function isValidMessage(message: any): message is ExtensionMessage; /** * Check if running in extension context * * @returns True if in extension context (has chrome.runtime) */ export declare function isExtensionContext(): boolean; /** * Check if running in content script context * * @returns True if in content script (has chrome.runtime but not in background) */ export declare function isContentScriptContext(): boolean; /** * Check if running in background script context * * @returns True if in background script */ export declare function isBackgroundScriptContext(): boolean; //# sourceMappingURL=ExtensionMessageProtocol.d.ts.map