import { type InjectOptions, type ProviderToken, type Signal, type WritableSignal } from '@angular/core';
type SignalLikeTypeOf<T> = T extends Signal<infer R> ? R : T;
type SignalLike<T> = Signal<T> | T;
export declare function tuiDirectiveBinding<T, G extends keyof T, I extends SignalLike<SignalLikeTypeOf<T[G]>>>(token: ProviderToken<T>, key: G, initial: I, options?: InjectOptions): I extends Signal<any> ? I : WritableSignal<I>;
export {};
