import { Settings } from './classes/settings';
import { Logger } from './classes/logger';
import { Routines } from './classes/domRoutines';
import { Viewport } from './classes/viewport';
import { Buffer } from './classes/buffer';
import { State } from './classes/state';
import { Adapter } from './classes/adapter';
import { Reactive } from './classes/reactive';
import { ScrollerWorkflow, IDatasource, IDatasourceConstructed, ScrollerParams, ProcessSubject } from './interfaces/index';
export declare const INVALID_DATASOURCE_PREFIX = "Invalid datasource:";
export declare class Scroller<Data = unknown> {
  datasource: IDatasourceConstructed<Data>;
  workflow: ScrollerWorkflow<Data>;
  settings: Settings<Data>;
  logger: Logger;
  routines: Routines;
  viewport: Viewport;
  buffer: Buffer<Data>;
  state: State;
  adapter: Adapter<Data>;
  constructor({ datasource, consumer, element, workflow, Routines: CustomRoutines, scroller }: ScrollerParams<Data>);
  initDatasource(datasource: IDatasource<Data>, scroller?: Scroller<Data>): void;
  init(adapterRun$?: Reactive<ProcessSubject>): void;
  dispose(forever?: boolean): void;
  finalize(): void;
}
