import { type InsertToPosition } from '@blocksuite/affine-shared/utils'; import { type ReadonlySignal } from '@preact/signals-core'; import type { GroupBy, GroupProperty } from '../common/types.js'; import type { TypeInstance } from '../logical/type.js'; import type { Property } from '../view-manager/property.js'; import type { Row } from '../view-manager/row.js'; import type { SingleView } from '../view-manager/single-view.js'; import type { GroupByConfig } from './types.js'; export type GroupInfo = Record> = { config: GroupByConfig; property: Property; tType: TypeInstance; }; export declare class Group = Record> { readonly key: string; readonly value: JsonValue; private readonly groupInfo; readonly manager: GroupTrait; rows: Row[]; constructor(key: string, value: JsonValue, groupInfo: GroupInfo, manager: GroupTrait); get property(): Property; name$: ReadonlySignal; private get config(); get tType(): TypeInstance; get view(): import("@blocksuite/affine-shared/types").UniComponent>; } export declare class GroupTrait { private readonly groupBy$; view: SingleView; private readonly ops; groupInfo$: ReadonlySignal> | undefined>; staticInfo$: ReadonlySignal<{ staticMap: { [k: string]: Group>; }; groupInfo: GroupInfo>; } | undefined>; groupDataMap$: ReadonlySignal>> | undefined>; groupsDataList$: ReadonlySignal>[] | undefined>; updateData: (data: NonNullable) => void; get addGroup(): ((config: import("../index.js").WithCommonPropertyConfig<{ text: string; oldData: {}; }>) => {}) | undefined; property$: ReadonlySignal> | undefined>; constructor(groupBy$: ReadonlySignal, view: SingleView, ops: { groupBySet: (groupBy: GroupBy | undefined) => void; sortGroup: (keys: string[]) => string[]; sortRow: (groupKey: string, rows: Row[]) => Row[]; changeGroupSort: (keys: string[]) => void; changeRowSort: (groupKeys: string[], groupKey: string, keys: string[]) => void; }); addToGroup(rowId: string, key: string): void; changeCardSort(groupKey: string, cardIds: string[]): void; changeGroup(columnId: string | undefined): void; changeGroupSort(keys: string[]): void; defaultGroupProperty(key: string): GroupProperty; moveCardTo(rowId: string, fromGroupKey: string | undefined, toGroupKey: string, position: InsertToPosition): void; moveGroupTo(groupKey: string, position: InsertToPosition): void; removeFromGroup(rowId: string, key: string): void; updateValue(rows: string[], value: unknown): void; } export declare const groupTraitKey: import("../traits/key.js").TraitKey; export declare const sortByManually: (arr: T[], getId: (v: T) => string, ids: string[]) => T[]; //# sourceMappingURL=trait.d.ts.map