import { Signal, WritableSignal } from '@angular/core';
import { SignalSelector } from './signal-selector';
type StateSelector<T, R> = (state: T) => R;
export declare function createSelectableSignal<StateType extends object>(state: Signal<StateType>): {
    select: {
        (): Signal<StateType>;
        <R>(mapFn: SignalSelector<StateType, R>): Signal<R>;
        <R_1>(mapFn: StateSelector<StateType, R_1>): Signal<R_1>;
        <KeyType extends keyof StateType>(key: KeyType): Signal<StateType[KeyType]>;
    };
    get: () => StateType;
};
export declare function createSelectableWritableSignal<StateType extends object>(state: WritableSignal<StateType>): {
    select: {
        (): Signal<StateType>;
        <R>(mapFn: SignalSelector<StateType, R>): Signal<R>;
        <R_1>(mapFn: StateSelector<StateType, R_1>): Signal<R_1>;
        <KeyType extends keyof StateType>(key: KeyType): Signal<StateType[KeyType]>;
    };
    get: () => StateType;
    set: (v: StateType) => void;
};
export {};
