import type { IStream } from '../IStream';
import type { IActiveSubscription } from '../IActiveSubscription';
import type { ILambdaClosure } from '../ILambdaClosure';
import type { ITransportAdapter } from '../../engine/remoting/ITransportAdapter';
/**
 * Lambda application function type
 * This should be provided by the evaluator context
 */
export type ApplyLambdaFn = (fn: ILambdaClosure, args: unknown[]) => Promise<unknown>;
/**
 * Event emitter function type
 */
export type EmitFn = (event: string, data: Record<string, unknown>) => void;
/**
 * StreamRuntime - Manages reactive stream subscriptions and processing
 *
 * Extracted from LispServices.ts to provide standalone stream runtime.
 */
export declare class StreamRuntime {
    private _activeSubscriptions;
    private _subscriptionCounter;
    private _transport;
    private _applyLambda;
    private _emit;
    constructor(transport: ITransportAdapter, applyLambda: ApplyLambdaFn, emit: EmitFn);
    /**
     * Get the number of active subscriptions
     */
    get activeCount(): number;
    /**
     * Get all active subscription IDs
     */
    get activeIds(): string[];
    /**
     * Activate a stream pipeline - subscribe to source and process through operators
     * Returns a subscription ID that can be used to unsubscribe later
     */
    activateStream(stream: IStream, outputTopic?: string): Promise<string>;
    /**
     * Deactivate a stream subscription
     */
    deactivateStream(subId: string): boolean;
    /**
     * Deactivate all streams
     */
    deactivateAll(): number;
    /**
     * Get subscription info
     */
    getSubscription(subId: string): IActiveSubscription | undefined;
    /**
     * List all active subscriptions
     */
    listSubscriptions(): IActiveSubscription[];
}
//# sourceMappingURL=StreamRuntime.d.ts.map