import { Graph } from "../../graph";
import { ESelectionStrategy } from "../../utils/types/types";
import { TBlockId } from "../block/Block";
import { RootStore } from "../index";
import { ConnectionState, TConnection, TConnectionId } from "./ConnectionState";
declare module "../../graphEvents" {
    interface GraphEventsDefinitions {
        "connection-selection-change": (event: SelectionEvent<TConnection>) => void;
    }
}
export declare class ConnectionsStore {
    rootStore: RootStore;
    protected graph: Graph;
    $connections: import("@preact/signals-core").ReadonlySignal<ConnectionState<TConnection>[]>;
    $connectionsMap: import("@preact/signals-core").Signal<Map<TConnectionId, ConnectionState<TConnection>>>;
    selectedConnections: Set<TConnectionId>;
    $selectedConnections: import("@preact/signals-core").ReadonlySignal<Set<ConnectionState<TConnection>>>;
    constructor(rootStore: RootStore, graph: Graph);
    getBlock(id: TBlockId): import("../block/Block").BlockState<import("../..").TBlock>;
    protected setSelection(connection: ConnectionState | ConnectionState["id"], selected: boolean, params?: {
        ignoreChange: boolean;
    }): boolean;
    updateConnections(connections: TConnection[]): void;
    setConnections(connections: TConnection[]): void;
    protected getOrCreateConnection(connections: TConnection): ConnectionState<TConnection>;
    addConnection(connection: TConnection): TConnectionId;
    protected notifyConnectionMapChanged(): void;
    deleteConnections(connections: ConnectionState[]): void;
    deleteSelectedConnections(): void;
    protected computeSelectionChange(ids: TConnectionId[], selected: boolean, strategy?: ESelectionStrategy): {
        add: ConnectionState<TConnection>[];
        removed: ConnectionState<TConnection>[];
        list: ConnectionState<TConnection>[];
    };
    setConnectionsSelection(ids: TConnectionId[], selected: boolean, strategy?: ESelectionStrategy): void;
    toJSON(): TConnection[];
    resetSelection(): void;
    getConnections(ids?: ConnectionState["id"][]): ConnectionState<TConnection>[];
    reset(): void;
}
