import { FExecutionContext } from "../execution_context/index.js";
import { FChannelEvent } from "./FChannelEvent.js";
export declare class FChannelEventBase<TData = Uint8Array, TEvent extends FChannelEvent.Event<TData> = FChannelEvent.Event<TData>> implements FChannelEvent<TData, TEvent> {
    private _callbacks?;
    addHandler(cb: FChannelEvent.Callback<TData, TEvent>): void;
    removeHandler(cb: FChannelEvent.Callback<TData, TEvent>): void;
    protected constructor();
    protected notify(executionContext: FExecutionContext, event: TEvent): Promise<void>;
    protected get hasSubscribers(): boolean;
    protected onAddFirstHandler(): void;
    protected onRemoveLastHandler(): void;
}
