/** * @public */ export type SignalSubscription = () => void; /** * @public */ export interface ISignal { /** * Gets the current value of the signal. * @returns The current value. */ get(): T; } /** * @public */ export interface IWritableSignal extends ISignal { /** * Sets a new value for the signal. * @param value The new value to set. */ set(value: T): void; /** * Updates the current value with the result of the update function. * @param updateFn A function to update the value. */ update(updateFn: (value: T) => T): void; /** * Converts this writable signal into a readonly signal. * @returns A readonly version of this signal. */ asReadonly(): ISignal; } /** * A type alias for a readonly version of Signal. * @public */ export type ReadonlySignal = ISignal; //# sourceMappingURL=SignalTypes.d.ts.map