import type { AgStudioProperties } from './api/agStudioProperties'; import type { AgStudioCommon } from './api/agStudioCommon'; type StudioPropertiesKey = keyof AgStudioProperties; type GetPropKeys = { [K in keyof T]: U extends T[K] ? K : T[K] extends U | null | undefined ? K : never; }[keyof T]; /** * Get the studioProperties that are of type `any`. * Works by finding the properties that can extend a non existing string. * This will only be the properties of type `any`. */ type AnyStudioProperties = { [K in keyof AgStudioProperties]: AgStudioProperties[K] extends 'NO_MATCH' ? K : never; }[keyof AgStudioProperties]; /** * Get all the studioProperties properties of the provided type. * Will also include `any` properties. */ type KeysLike = Exclude, undefined>; /** * Get all the studioProperties properties that strictly contain the provided type. * Does not include `any` properties. */ type KeysWithType = Exclude, AnyStudioProperties>; type CallbackKeys = KeysWithType<(any: AgStudioCommon) => any>; /** All function properties excluding those explicity match the common callback interface. */ type FunctionKeys = Exclude, CallbackKeys>; /** @internal AG_STUDIO_INTERNAL - Not for public use. Can change / be removed at any time. */ export declare const _BOOLEAN_MIXED_STUDIO_PROPERTIES: KeysWithType[]; /** @knipIgnore Used in example generation */ export declare const _FUNCTION_STUDIO_PROPERTIES: (CallbackKeys | FunctionKeys)[]; /** @internal AG_STUDIO_INTERNAL - Not for public use. Can change / be removed at any time. */ export declare const _GET_ALL_STUDIO_PROPERTIES: () => StudioPropertiesKey[]; /** @internal AG_STUDIO_INTERNAL - Not for public use. Can change / be removed at any time. */ export declare const _GET_SHALLOW_STUDIO_PROPERTIES: () => StudioPropertiesKey[]; export {};