import { ILogger } from '../logger';
import { StoreService } from '../store';
import { HotMeshManifest } from '../../types/hotmesh';
import { ProviderClient, ProviderTransaction } from '../../types/provider';
import { StreamService } from '../stream';
/**
 * The compiler service converts a graph into a executable program.
 */
declare class CompilerService {
    store: StoreService<ProviderClient, ProviderTransaction> | null;
    stream: StreamService<ProviderClient, ProviderTransaction> | null;
    logger: ILogger;
    constructor(store: StoreService<ProviderClient, ProviderTransaction>, stream: StreamService<ProviderClient, ProviderTransaction>, logger: ILogger);
    /**
     * verifies and plans the deployment of an app to Redis; the app is not deployed yet
     * @param path
     */
    plan(mySchemaOrPath: string): Promise<HotMeshManifest>;
    isPath(input: string): boolean;
    /**
     * deploys an app to Redis but does NOT activate it.
     */
    deploy(mySchemaOrPath: string): Promise<HotMeshManifest>;
    /**
     * activates a deployed version of an app;
     * @param appId
     * @param appVersion
     */
    activate(appId: string, appVersion: string): Promise<boolean>;
    saveAsJSON(originalPath: string, schema: HotMeshManifest): Promise<void>;
}
export { CompilerService };
