import { Observable } from 'rxjs';
import { LoggerService } from './utils/logger.service';
import { CacheService } from './cache/cache-layer.service';
import { LazyFactory } from './utils/lazy-factory.service';
import { ConfigService } from './config/config.service';
import { ConfigModel } from './config/config.model';
import { BehaviorsService } from './core/behaviors.service';
import { ServicesService } from './core/services.service';
import { ObservableContainer } from '../container/observable-interface';
export declare class ApplicationService {
    private logger;
    private cacheService;
    private lazyFactoriesService;
    configService: ConfigService;
    private behaviorsService;
    private servicesService;
    private globalConfig;
    constructor(logger: LoggerService, cacheService: CacheService, lazyFactoriesService: LazyFactory, configService: ConfigService, behaviorsService: BehaviorsService, servicesService: ServicesService);
    start(app: any, config?: ConfigModel): Observable<ObservableContainer>;
    private final;
    private asyncChainableBehaviors;
    private asyncChainableServices;
    private prepareAsyncChainables;
    private validateSystem;
    private attachLazyLoadedChainables;
    loadApplication(): boolean;
}
