import type * as Merge from "../../../index";
/**
 * # The Permission Object
 * ### Description
 * The `Permission` object is used to represent permissions that can be applied to users, roles, teams, collections, and tickets.
 *
 * ### Usage Example
 * TODO
 */
export interface Permission {
    id?: string;
    /** The third-party API ID of the matching object. */
    remoteId?: string;
    /** The datetime that this object was created by Merge. */
    createdAt?: Date;
    /** The datetime that this object was modified by Merge. */
    modifiedAt?: Date;
    /**
     * Outcome of this permission rule for matching users.
     *
     * * `ALLOWED` - ALLOWED
     * * `DENIED` - DENIED
     * * `INHERITED` - INHERITED
     */
    effect?: Merge.ticketing.PermissionEffect;
    /** Operations that this permission applies to. If the entity inherits permission from a parent entity, then this should be an empty array. In that case, the entity would inherit the parent entity’s actions. */
    actions?: (Merge.ticketing.ActionsEnum | undefined)[];
    appliedToUsers?: (string | undefined)[];
    appliedToRoles?: (string | undefined)[];
    appliedToTeams?: (string | undefined)[];
    appliedToCollections?: (string | undefined)[];
    /** Indicates whether or not this object has been deleted in the third party platform. Full coverage deletion detection is a premium add-on. Native deletion detection is offered for free with limited coverage. [Learn more](https://docs.merge.dev/integrations/hris/supported-features/). */
    remoteWasDeleted?: boolean;
    fieldMappings?: Record<string, unknown>;
}
