import { LimeWebComponentPlatform, Rule, ContextScope } from '@limetech/lime-web-components';
/**
 * Renders its slot only when the configured rule evaluates true.
 *
 * Pass a {@link Rule} and the gate compiles it on load and on prop
 * changes, then evaluates it against a scope obtained from the
 * {@link RuleRegistry} platform service.
 *
 * @exampleComponent limebb-example-rule-gate
 *
 * @alpha
 * @private
 */
export declare class RuleGate {
    host: HTMLElement;
    platform: LimeWebComponentPlatform;
    /**
     * The rule to evaluate. When unset, the gate renders its slot
     * unconditionally — "no rule" means "no gating", which mirrors
     * the editor's `Rule | undefined` emit contract.
     */
    rule: Rule | undefined;
    /**
     * Optional scope override. By default the gate resolves subject
     * values by walking up the DOM to ancestors that registered providers
     * with the rule registry. Pass an explicit scope to bypass that walk.
     */
    scope?: ContextScope;
    private shouldRender;
    componentWillLoad(): void;
    protected onRuleChange(): void;
    protected onScopeChange(): void;
    render(): any;
    private get ruleRegistry();
    private compileAndEvaluate;
}
//# sourceMappingURL=rule-gate.d.ts.map