import type { InternalStateManager } from './types';
import type { BaseStreamItem, IStateStream, StateStreamEvent, StateStreamEventChannel } from './types-stream';
export type StateStreamFactory<TData> = () => IStateStream<TData>;
export declare abstract class StateStream<TData> implements IStateStream<TData> {
    abstract get(id: string): Promise<BaseStreamItem<TData> | null>;
    abstract update(id: string, data: TData): Promise<BaseStreamItem<TData> | null>;
    abstract delete(id: string): Promise<BaseStreamItem<TData> | null>;
    abstract create(id: string, data: TData): Promise<BaseStreamItem<TData>>;
    abstract getGroupId(data: TData): string | null;
    abstract getList(groupId: string): Promise<BaseStreamItem<TData>[]>;
    send<T>(channel: StateStreamEventChannel, event: StateStreamEvent<T>): Promise<void>;
}
export declare class InternalStateStream<TData> extends StateStream<TData> {
    private readonly state;
    private readonly propertyName;
    constructor(state: InternalStateManager, propertyName: string);
    get(id: string): Promise<BaseStreamItem<TData> | null>;
    update(id: string, data: TData): Promise<BaseStreamItem<TData> | null>;
    delete(id: string): Promise<BaseStreamItem<TData> | null>;
    create(id: string, data: TData): Promise<BaseStreamItem<TData>>;
    getGroupId(): null;
    getList(): Promise<never[]>;
    send(): Promise<void>;
}
