import { type TProperties, type TPropertyKeys } from '../../types/properties.mjs'; import { type TCyclicCheck } from './check.mjs'; type TResolveCandidateKeys = (Keys extends [infer Left extends keyof Context, ...infer Right extends (keyof Context)[]] ? TCyclicCheck<[Left], Context, Context[Left]> extends true ? TResolveCandidateKeys : TResolveCandidateKeys : Result); /** Returns keys for context types that need to be transformed to TCyclic. */ export type TCyclicCandidates, Result extends (keyof Context)[] = TResolveCandidateKeys> = Result; /** Returns keys for context types that need to be transformed to TCyclic. */ export declare function CyclicCandidates(context: Context): TCyclicCandidates; export {};