import type { BitFlagSet } from '../flagsets' export interface SelectFlagSetType { useBitFlags(): DefineFlag } export interface DefineFlag { define(name: string): SetValueOrCompose build(): T } export interface RequireParentsOrDefineFlag extends DefineFlag { requires(...flags: string[]): DefineFlag } export interface SetValueOrCompose { withValue(value: number): RequireParentsOrDefineFlag compose(...flags: string[]): DefineFlag }