export interface SSelectOption { value: string | number; label: string; disabled?: boolean; children?: SSelectOption[]; } export type SSelectType = 'default' | 'multi' | 'default_depth' | 'multi_depth'; export interface FlatOption { value: string; label: string; disabled: boolean; depth: number; /** children 을 가진 그룹(비선택) 노드 */ isGroup: boolean; raw: string | number; } /** 트리 옵션을 depth 정보를 유지한 평탄 리스트로 변환. */ export declare function flattenOptions(options: SSelectOption[], depth?: number): FlatOption[]; /** 선택 가능한(비그룹) 옵션만 */ export declare const selectableOptions: (flat: FlatOption[]) => FlatOption[]; /** * flat 배열에서 groupIndex 위치 그룹의 하위(자손) 리프 중 '토글 가능한'(비활성 아님) * 것들의 정규화 value 목록. flat 은 DFS 순서라 그룹 뒤로 depth 가 더 깊은 연속 구간이 * 그 그룹의 자손이며, 중첩 그룹의 리프까지 재귀 없이 모두 포함된다. * (multi_depth 부모 체크박스의 상태/카운트/토글 계산에 사용) */ export declare function collectGroupLeafValues(flat: FlatOption[], groupIndex: number): string[]; /** 라벨에 HTML 태그가 있는지 (원본 isHtmlLabel) */ export declare const isHtmlLabel: (label: string) => boolean; /** HTML 라벨에서 태그를 제거한 텍스트 (검색 매칭용, 원본 extractText) */ export declare const extractText: (html: string) => string;