import type { UmbPartialSome } from '../type/index.js'; import { UmbControllerBase } from '../../../../libs/class-api/index.js'; import { UmbArrayState } from '../../../../libs/observable-api/index.js'; export interface UmbGuardIncomingRuleBase { unique?: string | symbol; permitted?: boolean; message?: string; } export interface UmbGuardRule extends UmbGuardIncomingRuleBase { unique: string | symbol; permitted: boolean; } export declare abstract class UmbGuardManagerBase> extends UmbControllerBase { protected readonly _rules: UmbArrayState; readonly rules: import("rxjs").Observable; readonly hasRules: import("rxjs").Observable; protected _fallback: boolean; fallbackToNotPermitted(): void; fallbackToPermitted(): void; /** * Add a new rule * @param {RuleType} rule */ addRule(rule: IncomingRuleType): string | symbol | undefined; /** * Add multiple rules * @param {RuleType[]} rules */ addRules(rules: IncomingRuleType[]): void; /** * Remove a rule * @param {RuleType['unique']} unique Unique value of the rule to remove */ removeRule(unique: RuleType['unique']): void; /** * Remove multiple rules * @param {RuleType['unique'][]} uniques Array of unique values to remove */ removeRules(uniques: RuleType['unique'][]): void; /** * Get all rules * @returns {RuleType[]} Array of rules */ getRules(): RuleType[]; /** * Clear all rules */ clearRules(): void; destroy(): void; }