import { AudioBase, VideoBase } from '../interfaces/core'; /** * Type-level conversion of snake_case string to camelCase */ export type SnakeToCamelCase = S extends `${infer T}_${infer U}` ? `${T}${Capitalize>}` : S; /** * Type-level conversion of camelCase string to snake_case */ export type CamelToSnakeCase = S extends `${infer T}${infer U}` ? T extends Uppercase ? `_${Lowercase}${CamelToSnakeCase}` : `${T}${CamelToSnakeCase}` : S; /** * Recursively converts all keys in an object type from snake_case to camelCase */ export type SnakeKeysToCamelCase = T extends Array ? U extends object ? SnakeKeysToCamelCase[] : U[] : T extends object ? { [K in keyof T as SnakeToCamelCase]: SnakeKeysToCamelCase; } : T; /** * Recursively converts all keys in an object type from camelCase to snake_case */ export type CamelKeysToSnakeCase = T extends Array ? U extends object ? CamelKeysToSnakeCase[] : U[] : T extends object ? { [K in keyof T as CamelToSnakeCase]: CamelKeysToSnakeCase; } : T; /** * Recursively converts object keys from snake_case to camelCase */ export declare const fromSnakeToCamel: (data: T) => SnakeKeysToCamelCase; /** * Recursively converts object keys from camelCase to snake_case */ export declare const fromCamelToSnake: (data: T) => CamelKeysToSnakeCase; export declare const playStream: (url: string) => string; export declare const isMediaAudio: (media: AudioBase | VideoBase) => media is AudioBase;