import { GroupKind } from '../kinds.js';
import type { IDeletion } from './Deletion.js';
/**
 * @deprecated Use `GroupSchema` instead.
 * This interface is kept for backward compatibility.
 */
export interface IGroup extends GroupSchema {
}
/**
 * An object representing a user group.
 */
export interface GroupSchema {
    kind: typeof GroupKind;
    /**
     * The key of the group.
     * If not provided, it will be generated automatically by the API
     */
    key: string;
    /**
     * The name of the group.
     * This is a required field and must be unique within the organization.
     * @required
     */
    name: string;
    /**
     * The description of the group.
     */
    description?: string;
    /**
     * The id of the user that created this group.
     * This field is ignored by the API and is set automatically.
     * @readonly
     */
    owner: string;
    /**
     * The icon of the group, if any.
     * An optional icon for the group, stored as a URL or path.
     * Max 255 characters.
     */
    icon?: string;
    /**
     * The color of the group, if any.
     * An optional color for the group, stored as a hex code.
     * Max 50 characters (including the #).
     */
    color?: string;
    /**
     * The organization ID this group belongs to.
     * This field is ignored by the API and is set automatically.
     * @readonly
     */
    oid: string;
    /**
     * The list of users in this group.
     * This field is ignored by the API and is set automatically.
     * @readonly
     */
    users: string[];
    /**
     * Describes when this group was created
     * This field is ignored by the API and is set automatically.
     * @readonly
     */
    createdAt: number;
    /**
     * Describes when this group was updated
     * This field is ignored by the API and is set automatically.
     * @readonly
     */
    updatedAt: number;
    /**
     * Optional deletion information if the group has been deleted.
     * This field is ignored by the API and is set automatically.
     * @readonly
     */
    deleteInfo?: IDeletion;
}
export declare class Group implements GroupSchema {
    kind: typeof GroupKind;
    key: string;
    name: string;
    description?: string;
    owner: string;
    icon?: string;
    color?: string;
    oid: string;
    users: string[];
    createdAt: number;
    updatedAt: number;
    deleteInfo?: IDeletion;
    static createSchema(input?: Partial<GroupSchema>): GroupSchema;
    static fromName(name: string, oid: string): Group;
    constructor(state?: Partial<GroupSchema>);
    toJSON(): GroupSchema;
}
//# sourceMappingURL=Group.d.ts.map