import Link from "../../link";
import { ConditionResource } from "./condition-resource";
/**
 * Type to allow only certain resource type values.
 */
export type RuleResourceType = "Regular" | "BuiltIn";
/**
 * Rule representation for {@link PolicyResource}
 */
export declare class RuleResource {
    /**
     * Non null collection of entity definition resource links to which this policy applies.
     */
    definitions: Array<Link>;
    /**
     * Unique identifier of the rule, usually GUID string.
     * This identifier is automatically generated by the system and shall not be set freely by user.
     */
    readonly identifier: string;
    /**
     * Non null collection of conditions which needs to be fulfilled uniformly in order to trigger this rule
     * (i.e. conditions are combined with "AND" logical operator).
     */
    conditions: Array<ConditionResource>;
    /**
     * Non null collection of permissions this rule grands,
     *
     * @remarks
     * The permissions are simple string constants recognized by the system.
     */
    permissions: Array<string>;
    /**
     * If set to true, this rule only applies to entities created by the logged on user.
     */
    createdByLoggedOnUser: boolean;
    /**
     * The type of the rule. It is not applicable when creating resource.
     * Indicates if this object is owned by the system and cannot be updated by users.
     *
     * @remarks
     * Possible values are: "Regular" or "BuiltIn".
     */
    type: RuleResourceType;
    /**
     * Indicates if this object is owned by the system and cannot be updated by users.
     */
    isSystemOwned: boolean;
    constructor(init?: Partial<RuleResource>);
}
