import URLEndpoint from '../Core/Http/URLEndpoint';
import Session from './Identity/Session';
import { PubSubEvent } from './PubSubEvents';
import { SessionBasedService } from './SessionBasedService';
export declare abstract class PubSubService extends SessionBasedService {
    constructor(endpoint: URLEndpoint, session: Session);
    protected abstract attachSubscriptions(): void;
    protected publish<T, TA>(ev: PubSubEvent<T>, ackCallback?: (message: any | undefined) => void): void;
    protected subscribeToEvent<T>(eventType: PubSubEvent<T>, handler: (message: T) => void): void;
}
