import { NgZone } from '@angular/core';
import { Observable } from 'rxjs';
import { KitSlideDirection, KitSlideId } from './meta';
/**
* ### Usage
*
* Provide `KitSlideHostService` on a component and add `*kitSlide` to slides.
*
* ```html
*
*
Slide 1
*
Slide 2
*
Slide 3
*
* ```
*
* Use `KitSlideHostService` for state changing.
*
* ```typescript
* providers[KitSlideHostService],
* ...
* constructor(private slideHost: KitSlideHostService) {
* }
* ...
* rotate() {
* this.slideHost.rotate();
* }
* ```
*
*
* ### Example
*
* * collection:carousel -
* [sources](https://github.com/ngx-kit/ngx-kit/tree/master/packages/collection/lib/ui-carousel),
* [demo](http://ngx-kit.com/collection/module/ui-carousel)
* * collection:tabs - [sources](https://github.com/ngx-kit/ngx-kit/tree/master/packages/collection/lib/ui-tabs),
* [demo](http://ngx-kit.com/collection/module/ui-tabs)
*/
export declare class KitSlideHostService {
private zone;
/**
* Activate first slide on init.
*/
activateFirst: boolean;
private _active;
private _direction;
private firstRegistration;
private ids;
private lastId;
constructor(zone: NgZone);
/**
* Get active slide id.
*/
/**
* Set active side by id.
*/
active: KitSlideId;
/**
* Set active and emit only 'initial' direction.
*/
activeInitial: KitSlideId;
/**
* Get `Observable` with active slide id.
*/
readonly activeChanges: Observable;
/**
* Get `Observable` with direction of slide changing (next, prev).
*/
readonly directionChanges: Observable;
/**
* Register slide.
*/
addId(id: KitSlideId): void;
/**
* Delete slide.
*/
deleteId(id: KitSlideId): void;
/**
* Generate slide id.
*/
genId(): number;
/**
* Activate next slide.
*/
next(cycle?: boolean): void;
/**
* Activate prev slide.
*/
prev(cycle?: boolean): void;
private getCurrentIndex;
private getIndex;
}