import { Guid, GuidValue } from "./Guid";
export declare abstract class RealtimeChannel {
    /**
     * Construct a unique channel id that can be targeted to users who are set to be in that channel on the client
     * @returns id
     */
    abstract getId(): string;
}
export declare class BusinuessProfileChannel extends RealtimeChannel {
    private _profileId;
    constructor(profileId: Guid);
    getId(): string;
}
export declare abstract class RealtimeData<TRealtimeChannel extends RealtimeChannel, TRealtimeData> {
    private _channel;
    private _value;
    get channel(): TRealtimeChannel;
    get value(): TRealtimeData;
    abstract getId(): GuidValue;
    constructor(channel: TRealtimeChannel, value?: TRealtimeData);
}
export declare class PageChatRealtimeData extends RealtimeData<BusinuessProfileChannel, {
    x: number;
    y: number;
}> {
    constructor(channel: BusinuessProfileChannel);
    getId(): GuidValue;
}
export type RealtimeChannelUpdateTypes = "activate" | "deactivate";
export interface RealtimeChannelUpdateMessage extends RealtimChannelMessage {
    threadId: GuidValue;
    type: RealtimeChannelUpdateTypes;
}
export interface RealtimeSendMessage extends RealtimChannelMessage {
    dataId: GuidValue;
    data: any;
}
export interface RealtimChannelMessage {
    channelId: string;
}
