/**
 * DecisionController
 *
 * A Lit ReactiveController that replaces the `useDecision()` React hook
 * from RuntimeProvider.tsx. Evaluates a DecisionStrategy against the runtime
 * when the host element connects and exposes the result as reactive properties.
 *
 * Usage:
 * ```ts
 * class MyElement extends LitElement {
 *   private _decision = new DecisionController(
 *     this,
 *     runtime,
 *     strategy,
 *     false  // defaultValue
 *   );
 *
 *   render() {
 *     if (this._decision.isLoading) return html`...`;
 *     return this._decision.value ? html`<shown-content>` : html``;
 *   }
 * }
 * ```
 */
import type { ReactiveController, ReactiveControllerHost } from 'lit';
import type { DecisionStrategy } from '../decisions/types.js';
import type { SmartCanvasRuntime } from '../runtime.js';
export declare class DecisionController<T> implements ReactiveController {
    private _host;
    private _runtime;
    private _strategy;
    private _defaultValue;
    private _value;
    private _isFallback;
    private _isLoading;
    private _cancelled;
    constructor(host: ReactiveControllerHost, runtime: SmartCanvasRuntime | null | undefined, strategy: DecisionStrategy<T> | null | undefined, defaultValue: T);
    get value(): T;
    get isFallback(): boolean;
    get isLoading(): boolean;
    hostConnected(): void;
    hostDisconnected(): void;
    /**
     * Update the strategy and re-evaluate. Triggers a host update when done.
     */
    setStrategy(strategy: DecisionStrategy<T> | null | undefined): void;
    private _evaluate;
}
