import { Container } from 'inversify';
import { IocContainer } from 'tsoa';
import { ComponentSetService, ComponentFunctionService, ManifestService } from '@squiz/component-lib';
import { Logger } from '@squiz/dx-logger-lib';
import { ComponentRunnerService } from './component-runner';
import { HealthCheckService } from './health-check-service';
import { ComponentPreviewService } from './PreviewComponentService';
import { ContentItemService } from '@squiz/component-lib';
import { ApiKeyValidationService } from '@squiz/dx-common-lib';
import { RenderInputService } from './RenderInputService';
import { Sandbox } from '@squiz/runtime-sandbox-common';
export interface Services {
    sandbox: Sandbox;
    logger: Logger;
    componentSetService: ComponentSetService;
    manifestService: ManifestService;
    componentRunnerService: ComponentRunnerService;
    componentFunctionService: ComponentFunctionService;
    healthCheckService?: HealthCheckService;
    componentPreviewService: ComponentPreviewService;
    contentItemService?: ContentItemService;
    apiKeyService: ApiKeyValidationService;
    renderInputService: RenderInputService;
}
declare let iocContainer: IocContainer;
export declare const initIocContainer: (services: Services) => Container;
export { iocContainer };
