import { TokenType } from "../enums/SDKTokenType";
export type TokenGroupRemoteModel = {
    id?: string;
    parentId?: string;
    brandId: string;
    tokenType: TokenType;
    designSystemVersionId: string;
    persistentId?: string;
    isRoot: boolean;
    meta: {
        name: string;
        description: string;
    };
    childrenIds: string[];
    createdAt?: string;
    updatedAt?: string;
};
export declare class TokenGroup {
    id: string;
    idInVersion: string;
    brandId: string;
    designSystemVersionId: string;
    name: string;
    description: string;
    path: Array<string>;
    subgroupIds: Array<string>;
    tokenType: TokenType;
    isRoot: boolean;
    childrenIds: Array<string>;
    tokenIds: Array<string>;
    parentGroupId: string | null;
    sortOrder: number;
    createdAt: Date | null;
    updatedAt: Date | null;
    constructor(model: TokenGroupRemoteModel);
    addChild(groupId: string): void;
    addChildren(groupsIds: Array<string>): void;
    setPath(segments: Array<string>): void;
    setParentGroupId(parentGroupId: string | null): void;
    setSortOrder(order: number): void;
    toWriteObject(): TokenGroupRemoteModel;
    toMutatedObject(childrenIds: Array<string>): TokenGroup;
    copyWith<K extends "parentGroupId" | "childrenIds" | "subgroupIds">(key: K, value: this[K]): this;
}
