import { MessagePayloadMap, MessageType } from './utils';
export declare class BaseWindowChannel {
    private readonly self;
    private otherSide?;
    private listeners;
    protected init(window: Window): () => void;
    send<T extends MessageType>(type: T, payload?: MessagePayloadMap[T]): void;
    listen<T extends keyof MessagePayloadMap>(type: T, callback: (payload: MessagePayloadMap[T]) => void): () => void;
}
