import type { Nullable } from "../../base-types";
import Link from "../../link";
import Resource from "../resource";
import { MemberPolicyResource } from "./member-policy-resource";
import { RuleResource } from "./rule-resource";
/**
 * Policy resource.
 */
export declare class PolicyResource extends Resource {
    /**
     * Non null collection of rules for the policy.
     *
     * @remarks
     * If any of the rules apply in the specific case the policy is triggered (i.e. rules are combined with "OR" logical
     * operator).
     */
    rules: Array<RuleResource>;
    /**
     * Non null collection of the member security policies.
     */
    memberSecurity: Array<MemberPolicyResource>;
    /**
     * Non null collection of the member group security policies.
     */
    memberGroupSecurity: Array<MemberPolicyResource>;
    /**
     * Link to user resource or null if not applicable.
     */
    user?: Nullable<Link>;
    /**
     * Link to the user group resource or null if not applicable.
     */
    userGroup?: Nullable<Link>;
    /**
     * Link to the user resource representing who created the policy.
     */
    readonly createdBy: Link;
    /**
     * Time of the policy creation.
     */
    readonly createdOn: Date;
    /**
     * Link to the user resource representing who last modified the policy.
     */
    readonly modifiedBy: Link;
    /**
     * Time of the last policy modification.
     */
    readonly modifiedOn: Date;
}
