import { IClientBuildResults, IModel } from '@dolittle/sdk.common';
import { IServiceProviderBuilder } from '@dolittle/sdk.dependencyinversion';
import { IEventTypes } from '@dolittle/sdk.events';
import '@dolittle/sdk.resources';
import { ProjectionProcessor } from '../Internal/ProjectionProcessor';
import { IProjectionReadModelTypes } from '../Store/IProjectionReadModelTypes';
/**
 * Represents a builder that can build {@link ProjectionProcessor} from an {@link IModel}.
 */
export declare class ProjectionsModelBuilder {
    private readonly _model;
    private readonly _buildResults;
    private readonly _eventTypes;
    private readonly _bindings;
    /**
     * Initialises a new instance of the {@link ProjectionsModelBuilder} class.
     * @param {IModel} _model - The built application model.
     * @param {IClientBuildResults} _buildResults - For keeping track of build results.
     * @param {IEventTypes} _eventTypes - For event types resolution.
     * @param {IServiceProviderBuilder} _bindings - For registering the bindings for {@link IProjectionOf} types.
     */
    constructor(_model: IModel, _buildResults: IClientBuildResults, _eventTypes: IEventTypes, _bindings: IServiceProviderBuilder);
    /**
     * Builds all projections created with the builder.
     * @returns {[ProjectionProcessor[], IProjectionReadModelTypes]} The built projection processors and read model types.
     */
    build(): [ProjectionProcessor<any>[], IProjectionReadModelTypes];
}
//# sourceMappingURL=ProjectionsModelBuilder.d.ts.map