import { Trigger, TriggerType, TriggersObject } from "./triggers"; interface RestrictionScope extends ng.IScope { restriction: RestrictionType; [x: string]: unknown; } export type RestrictionType = { definition: { id: string; name: string; description: string; triggers?: TriggerType[] | TriggersObject; }; optionsTemplate: string; optionsController?: ( $scope: RestrictionScope, ...args: unknown[] ) => void; optionsValueDisplay?: ( restriction: RestrictionModel, ...args: unknown[] ) => string; predicate( triggerData: Trigger, restrictionData: RestrictionModel ): boolean | Promise; };