import { OdsConfig } from './ods-config';
import { odsSetup } from './ods-setup';
import { OdsWindowConfig } from './ods-window-config';
import { DeepRequired } from '../types/ods-deep-required';
/**
* description of all properties globally managed into window by the `ODS` system.
*
* @example enable log before ODS initialization via HTML
* ```html
*
* ```
*
* @example enable log before ODS initialization via typescript
* ```typescript
* // eslint-disable-next-line no-var
* declare var window: OdsWindow;
* !window.ods && (window.ods = { config: { logging: { active: true } } });
* ```
*
* @example managing log directly in the browser via javascript
* ```javascript
* // via the property
* window.ods.config.logging.active = true;
* // via the public method
* window.ods.latest.logging(true);
* ```
*
*
* @example use the `ODS` embedded logger via javascript
* ```html
*
* ```
*
*
* WARNING: MUST BE RETRO COMPATIBLE for all ODS versions
*/
export interface OdsWindow extends Window {
ods?: OdsWindowConfig;
odsSetup?: typeof odsSetup;
}
export interface OdsWindowFilled extends OdsWindow {
ods: Required & {
config: DeepRequired;
};
}