import { IEngine } from '@dcl/ecs';
export declare function setInterval(engine: IEngine, fn: () => void, ms: number): (dt: number) => void;
export declare function clearInterval(engine: IEngine, fn: (t: number) => void): void;
export declare function toCamelCase<T extends Record<string, any> | any[]>(obj: T): T extends any[] ? any[] : {
    [K in keyof T as CamelCaseString<K & string>]: T[K];
};
export type CamelCaseString<S extends string> = S extends `${infer P}_${infer Q}` ? `${P}${Capitalize<CamelCaseString<Q>>}` : S;
export type CamelCase<T> = {
    [K in keyof T as CamelCaseString<string & K>]: T[K] extends Record<string, any> ? CamelCase<T[K]> : T[K] extends Array<infer U> ? U extends Record<string, any> ? Array<CamelCase<U>> : T[K] : T[K];
};
