import { Authentication } from './authentication/authentication';
import { AuthorizationRules } from './authorization/authorizationRules';
import { DistributionRules } from './distribution/distribution-rules';
import { Jinaga } from './jinaga';
import { Network } from './managers/NetworkManager';
import { MemoryStore } from './memory/memory-store';
import { PurgeConditions } from "./purge/purgeConditions";
import { Model } from './specification/model';
import { Specification } from "./specification/specification";
import { Storage } from './storage';
export declare type JinagaTestConfig = {
    model?: Model;
    authorization?: (a: AuthorizationRules) => AuthorizationRules;
    distribution?: (d: DistributionRules) => DistributionRules;
    user?: {};
    device?: {};
    initialState?: {}[];
    purgeConditions?: (p: PurgeConditions) => PurgeConditions;
    feedRefreshIntervalSeconds?: number;
};
export declare class JinagaTest {
    static create(config: JinagaTestConfig): Jinaga;
    static saveInitialState(config: JinagaTestConfig, store: MemoryStore): void;
    static createAuthentication(config: JinagaTestConfig, store: Storage): Authentication;
    static createNetwork(config: JinagaTestConfig, store: MemoryStore): Network;
    static createPurgeConditions(config: JinagaTestConfig): Specification[];
    private static getUserFact;
    private static getDeviceFact;
}
//# sourceMappingURL=jinaga-test.d.ts.map