import { ColdObservable } from './src/rxjs/cold-observable';
import { HotObservable } from './src/rxjs/hot-observable';
import { Subscription } from 'rxjs';
export type ObservableWithSubscriptions = ColdObservable | HotObservable;
export { Scheduler } from './src/rxjs/scheduler';
declare global {
    namespace jest {
        interface Matchers<R extends void | Promise<void>> {
            toBeObservable(observable: ObservableWithSubscriptions): R;
            toHaveSubscriptions(marbles: string | string[]): R;
            toHaveNoSubscriptions(): R;
            toBeMarble(marble: string): R;
            toSatisfyOnFlush(func: () => void): R;
        }
    }
}
declare module 'expect' {
    interface Matchers<R extends void | Promise<void>> {
        toBeObservable(observable: ObservableWithSubscriptions): R;
        toHaveSubscriptions(marbles: string | string[]): R;
        toHaveNoSubscriptions(): R;
        toBeMarble(marble: string): R;
        toSatisfyOnFlush(func: () => void): R;
    }
}
export declare function hot(marbles: string, values?: object, error?: object): HotObservable;
export declare function cold(marbles: string, values?: object, error?: object): ColdObservable;
export declare function time(marbles: string): number;
export declare function schedule(work: () => void, delay: number): Subscription;
