芝麻web文件管理V1.00
编辑当前文件:/home/freeclou/app.optimyar.com/backend/node_modules/@casl/ability/dist/types/RuleIndex.d.ts
import { Rule } from './Rule'; import { RawRuleFrom } from './RawRule'; import { DetectSubjectType, ResolveAction, CanParameters, Abilities, Normalize, ConditionsMatcher, FieldMatcher, RuleOptions } from './types'; declare type AnyRuleIndex = RuleIndex
; export interface RuleIndexOptions
{ /** @deprecated use "detectSubjectType" option instead */ subjectName?: this['detectSubjectType']; detectSubjectType?: DetectSubjectType
[1]>; conditionsMatcher?: ConditionsMatcher
; fieldMatcher?: FieldMatcher; resolveAction?: ResolveAction
[0]>; } export declare type Generics
= T extends AnyRuleIndex ? { abilities: T['za']; conditions: T['zc']; } : never; export declare type RuleOf
= Rule
['abilities'], Generics
['conditions']>; export declare type RawRuleOf
= RawRuleFrom
['abilities'], Generics
['conditions']>; export declare type RuleIndexOptionsOf
= RuleIndexOptions
['abilities'], Generics
['conditions']>; export interface UpdateEvent
{ rules: RawRuleOf
[]; } export declare type EventHandler
= (event: Event) => void; export declare type Events
= { [K in keyof EventsMap
]: EventHandler
[K]>[]; }; interface EventsMap
{ update: UpdateEvent
& Event; updated: UpdateEvent
& Event; } export declare type Unsubscribe = () => void; export declare class RuleIndex
{ private _hasPerFieldRules; private _mergedRules; private _events; private _indexedRules; private _rules; readonly rules: RawRuleFrom
[]; readonly _ruleOptions: RuleOptions
; readonly detectSubjectType: DetectSubjectType
[1]>; /** @private hacky property to track Abilities type */ readonly za: A; /** @private hacky property to track Conditions type */ readonly zc: Conditions; constructor(rules?: RawRuleFrom
[], options?: RuleIndexOptions
); update(rules: RawRuleFrom
[]): this; private _buildIndexFor; possibleRulesFor(...args: CanParameters
): Rule
[]; private _mergeRulesFor; rulesFor(...args: CanParameters
): Rule
[]; on
>(event: T, handler: EventHandler
[T]>): Unsubscribe; private _emit; } export {};