import YGAPIs from './api';
import YGUtils, { LDKey } from './utils';
import GlobalConfig from './config/config';
import type { IGlobalConfig, ClassType } from './types';
export { YGAPIs, YGUtils, GlobalConfig, LDKey };
export * as YGModels from './models';
export * as YGTypes from './types';
export default class YGTools<ICustomAPIs extends YGAPIs, CCustomLDKey extends typeof LDKey, ICustomUtils extends YGUtils<CCustomLDKey>> {
    APIs: ICustomAPIs;
    Utils: ICustomUtils;
    constructor(config: GlobalConfig, customAPIs?: ICustomAPIs, customUtils?: ICustomUtils);
    static createYGTools(config: Partial<IGlobalConfig>): YGTools<YGAPIs, typeof LDKey, YGUtils<typeof LDKey>>;
    static createCustomYGTools<CCustomAPIs extends ClassType<YGAPIs>, CCustomLDKey extends typeof LDKey, CCustomUtils extends ClassType<YGUtils<CCustomLDKey>>, ICustomAPIs extends YGAPIs, ICustomUtils extends YGUtils<CCustomLDKey>>(config: Partial<IGlobalConfig>, customOptions: {
        CustomAPIs?: CCustomAPIs;
        CustomUtils?: CCustomUtils;
        CustomLDK?: CCustomLDKey;
    }): YGTools<ICustomAPIs, CCustomLDKey, ICustomUtils>;
}
