export declare const DATASET_ENTITY_TYPES: readonly ["tokens", "tokenThemes", "figmaComponents", "designComponents", "assets", "documentation", "contexts", "skills", "files", "codeComponents"]; export type DatasetEntityType = (typeof DATASET_ENTITY_TYPES)[number]; export type DatasetLogicalOperator = "and" | "or"; export type DatasetPropertyOperator = "is" | "isNot" | "contains" | "doesNotContain" | "startsWith" | "endsWith" | "isEmpty" | "isNotEmpty" | "greaterThan" | "greaterThanOrEqual" | "lessThan" | "lessThanOrEqual" | "in" | "notIn"; export type DatasetPrimitiveValue = string | number | boolean | null; export type DatasetConditionValue = DatasetPrimitiveValue | readonly DatasetPrimitiveValue[]; export type DatasetEntityFieldMap = { tokens: { id: string; name: string; description: string; path: string; tokenType: string; brandId: string; themeId: string | null; collectionId: string | null; sortOrder: number; }; tokenThemes: { id: string; name: string; description: string; codeName: string; brandId: string; collectionName: string; }; figmaComponents: { id: string; name: string; description: string; }; designComponents: { id: string; name: string; description: string; }; assets: { id: string; name: string; description: string; }; documentation: { id: string; name: string; description: string; path: string; }; contexts: { id: string; name: string; description: string; workspaceId: string; designSystemId: string | null; }; skills: { id: string; name: string; path: string; description: string; type: string; }; files: { id: string; name: string; path: string; description: string; type: string; }; codeComponents: { id: string; name: string; description: string; packageName: string; repositoryName: string; filePath: string; }; }; export type DatasetFilterProperty = keyof DatasetEntityFieldMap[TEntity] & string; type DatasetFieldValue> = DatasetEntityFieldMap[TEntity][TProperty]; type DatasetStringPropertyOperator = "is" | "isNot" | "contains" | "doesNotContain" | "startsWith" | "endsWith" | "isEmpty" | "isNotEmpty" | "in" | "notIn"; type DatasetNumberPropertyOperator = "is" | "isNot" | "isEmpty" | "isNotEmpty" | "greaterThan" | "greaterThanOrEqual" | "lessThan" | "lessThanOrEqual" | "in" | "notIn"; type DatasetBooleanPropertyOperator = "is" | "isNot" | "isEmpty" | "isNotEmpty"; type DatasetArrayPropertyOperator = "contains" | "doesNotContain" | "isEmpty" | "isNotEmpty" | "in" | "notIn"; export type DatasetPropertyOperatorForField> = DatasetFieldValue extends readonly unknown[] ? DatasetArrayPropertyOperator : DatasetFieldValue extends number ? DatasetNumberPropertyOperator : DatasetFieldValue extends boolean ? DatasetBooleanPropertyOperator : DatasetStringPropertyOperator; export type DatasetConditionValueForField> = DatasetFieldValue extends readonly (infer TItem)[] ? TItem | readonly TItem[] : DatasetFieldValue | readonly DatasetFieldValue[]; export type DatasetIncludeAllCondition = { type: "includeAll"; }; export type DatasetIncludeIdsCondition = { type: "includeIds"; ids: readonly string[]; }; export type DatasetExcludeIdsCondition = { type: "excludeIds"; ids: readonly string[]; }; export type DatasetPropertyCondition = DatasetFilterProperty> = { type: "property"; property: TProperty; operator: DatasetPropertyOperatorForField; value?: DatasetConditionValueForField; }; export type DatasetCondition = DatasetIncludeAllCondition | DatasetIncludeIdsCondition | DatasetExcludeIdsCondition | DatasetPropertyCondition; export type DatasetFilterNode = DatasetCondition | DatasetFilterGroup; export type DatasetFilterGroup = { type: "group"; operator: DatasetLogicalOperator; children: readonly DatasetFilterNode[]; }; export type DatasetEntity = { id: string; [property: string]: unknown; }; export type DatasetFilterItem = { id: string; }; export type DatasetFilterEntity = DatasetEntity & { name?: string; path?: string; item: TItem; }; export type DatasetFilterResultSource = "current" | "inherited"; export type DatasetFilterResult = { item: TItem; source: DatasetFilterResultSource; }; export type DatasetFilterResultByEntityType = Partial>>>; export type DatasetIdInScopeResult = { status: "in_scope"; reason: "includeAll" | "explicit_include" | "no_filter_configured"; } | { status: "not_in_scope"; reason: "explicit_exclude" | "not_in_includes"; }; export type DatasetItemProjector = (item: TItem) => DatasetFilterEntity; export type DatasetSelections = Partial>; export type SDKDatasetData = { designSystemId?: string | null; selections?: DatasetSelections; }; export type DatasetResolveResult = DatasetFilterResultByEntityType; export type DatasetDataRepository = { getAllForType: (entityType: DatasetEntityType, designSystemId: string | null) => readonly TEntity[]; }; type DatasetPropertyGetter = (item: TEntity, property: string) => unknown; /** * Canonical id for dataset filter matching. For `documentation` items, prefer * `persistentId` when present — page entities expose both `id` (numeric, * version-specific) and `persistentId` (UUID, stable across versions), and * filters store the persistentId. Other entity types fall through to `id`, * which the SDK already normalizes to the persistent form on construction. */ export declare const getDatasetFilterEntityId: (item: TItem, entityType: DatasetEntityType) => string; export declare class DatasetSelectionBuilder { and(children: readonly DatasetFilterNode[]): DatasetFilterGroup; or(children: readonly DatasetFilterNode[]): DatasetFilterGroup; includeAll(): DatasetIncludeAllCondition; includeIds(ids: readonly string[]): DatasetIncludeIdsCondition; excludeIds(ids: readonly string[]): DatasetExcludeIdsCondition; where, TOperator extends DatasetPropertyOperatorForField>(property: TProperty, operator: TOperator, value?: DatasetConditionValueForField): DatasetPropertyCondition; } export declare class SDKDataset { /** @deprecated not used anymore */ readonly designSystemId: string | null; readonly tokens?: DatasetFilterGroup; readonly tokenThemes?: DatasetFilterGroup; readonly figmaComponents?: DatasetFilterGroup; readonly designComponents?: DatasetFilterGroup; readonly assets?: DatasetFilterGroup; readonly documentation?: DatasetFilterGroup; readonly contexts?: DatasetFilterGroup; readonly skills?: DatasetFilterGroup; readonly files?: DatasetFilterGroup; readonly codeComponents?: DatasetFilterGroup; private readonly refinedSourceDataset?; private readonly refinedBaseDataset?; constructor(data?: SDKDatasetData, refinedSourceDataset?: SDKDataset, refinedBaseDataset?: SDKDataset); static create(designSystemId?: string | null): SDKDataset; static and(children: readonly DatasetFilterNode[]): DatasetFilterGroup; static or(children: readonly DatasetFilterNode[]): DatasetFilterGroup; static includeAll(): DatasetIncludeAllCondition; static includeIds(ids: readonly string[]): DatasetIncludeIdsCondition; static excludeIds(ids: readonly string[]): DatasetExcludeIdsCondition; withSelection(entityType: TEntity, buildGroup: (builder: DatasetSelectionBuilder) => DatasetFilterGroup): SDKDataset; withoutSelection(entityType: DatasetEntityType): SDKDataset; canUnionWith(other: SDKDataset): boolean; union(other: SDKDataset): SDKDataset; refine(baseDataset: SDKDataset): SDKDataset; resolve(repository: DatasetDataRepository, getPropertyValue?: DatasetPropertyGetter): DatasetResolveResult; filteredTokens(allTokens: readonly TToken[], inheritedDataset?: SDKDataset): DatasetFilterResult[]; filteredTokenThemes(allTokenThemes: readonly TTokenTheme[], inheritedDataset?: SDKDataset): DatasetFilterResult[]; filteredFigmaComponents(allFigmaComponents: readonly TFigmaComponent[], inheritedDataset?: SDKDataset): DatasetFilterResult[]; filteredDesignComponents(allDesignComponents: readonly TDesignComponent[], inheritedDataset?: SDKDataset): DatasetFilterResult[]; filteredAssets(allAssets: readonly TAsset[], inheritedDataset?: SDKDataset): DatasetFilterResult[]; filteredDocumentation(allDocumentation: readonly TDocumentation[], inheritedDataset?: SDKDataset): DatasetFilterResult[]; filteredContexts(allContexts: readonly TContext[], inheritedDataset?: SDKDataset): DatasetFilterResult[]; filteredSkills(allSkills: readonly TSkill[], inheritedDataset?: SDKDataset): DatasetFilterResult[]; filteredFiles(allFiles: readonly TFile[], inheritedDataset?: SDKDataset): DatasetFilterResult[]; filteredCodeComponents(allCodeComponents: readonly TCodeComponent[], inheritedDataset?: SDKDataset): DatasetFilterResult[]; filteredItems(entityType: DatasetEntityType, allItems: readonly TItem[], inheritedDataset?: SDKDataset, projectItem?: DatasetItemProjector): Array>; /** * Id-only membership check against the dataset's scope for one entity type. * Walks the filter tree for `includeAll`, `includeIds`, `excludeIds` and * returns a structured reason. Does not evaluate property predicates — for * those use `filteredItems`. * * Default for a missing filter group: workspace-scoped entities drop; * DS-scoped entities pass. See `DATASET_WORKSPACE_ENTITY_TYPES` for why. */ isIdInScope(entityType: DatasetEntityType, id: string): DatasetIdInScopeResult; isEmpty(): boolean; private getSelections; toRemote(): SDKDatasetData; private getMatchingItemIds; private mapItemsToResults; } export {};