import { Event, RpcProxy, Channel, RpcProxyFactory } from '../../common';
import { ServiceConnectionProvider } from '../../browser/messaging/service-connection-provider';
import { ILogger } from '../../common/logger';
import { ConnectionSource } from '../../browser/messaging/connection-source';
export declare class FrontendOnlyConnectionSource implements ConnectionSource {
    onConnectionDidOpen: Event<Channel>;
}
/**
 * Proxy factory for services without a frontend-only implementation. There is no backend,
 * so no channel will ever open and requests would otherwise be queued forever, blocking
 * any caller that awaits the result, e.g. during application startup.
 * Instead, requests fail immediately and notifications (fire-and-forget) resolve silently.
 */
export declare class FrontendOnlyRpcProxyFactory<T extends object> extends RpcProxyFactory<T> {
    protected readonly path: string;
    constructor(path: string, target?: object);
    get(target: T, p: PropertyKey, receiver: unknown): unknown;
}
export declare class FrontendOnlyServiceConnectionProvider extends ServiceConnectionProvider {
    protected readonly logger: ILogger;
    onSocketDidOpen: Event<any>;
    onSocketDidClose: Event<any>;
    onIncomingMessageActivity: Event<any>;
    createProxy<T extends object>(path: string, target?: object): RpcProxy<T>;
    listen(path: string, handler: ServiceConnectionProvider.ConnectionHandler, reconnect: boolean): void;
}
//# sourceMappingURL=frontend-only-service-connection-provider.d.ts.map