/**
 * A username for a particular ArcGIS Portal User.
 */
export type PortalUsername = string;
/**
 * The unique ID of an ArcGIS Portal Group.
 */
export type PortalGroupId = string;
/**
 * A defined set of user types for convenient configuration, based on
 * authentication.
 */
export type VertigisUserType = "gcx-all-users" | "gcx-anonymous-users" | "gcx-authenticated-users";
/**
 * An identity/authentication based filter that determines whether a component
 * or menu item in the app is visible or hidden from a given end-user.
 */
export type VisibilityFilter = VertigisUserType | PortalGroupId | PortalUsername;
/**
 * A set of properties that determines whether a component or menu item in the
 * app is visible or hidden from a given end-user.
 */
export interface HasVisibilityFilters {
    /**
     * Filters that determine whether the UI element is visible to a given
     * end-user. If both visibleTo and hiddenFrom are undefined/empty, the
     * component will be visible to all users.
     */
    visibleTo?: Iterable<VisibilityFilter>;
    /**
     * Filters that determine whether the UI element is hidden from a given
     * end-user. If both visibleTo and hiddenFrom are undefined/empty, the
     * component will be visible to all users.
     */
    hiddenFrom?: Iterable<VisibilityFilter>;
}
