import moment, { Moment } from 'moment'; export declare enum ItemUIState { Editing = 0, Selected = 1 } export interface IItem { readonly id: string; readonly title?: string; readonly speaker?: string; readonly description?: string; readonly start: Moment; readonly end: Moment; readonly uiState?: ItemUIState; } export interface IItemJSON { id: string; title?: string; speaker?: string; description?: string; start: string; end: string; uiState?: ItemUIState; } export declare class Item { private _id; private _title; private _speaker; private _description; private _start; private _end; private _uiState?; /** * Getter uiState * @return {ItemUIState | undefined} */ get uiState(): ItemUIState | undefined; /** * Setter uiState * @param {ItemUIState | undefined} value */ set uiState(value: ItemUIState | undefined); constructor(obj: IItem | IItemJSON); /** * Getter id * @return {string} */ get id(): string; /** * Setter id * @param {string} value */ set id(value: string); /** * Getter title * @return {string} */ get title(): string; /** * Setter title * @param {string} value */ set title(value: string); /** * Getter speaker * @return {string} */ get speaker(): string; /** * Setter speaker * @param {string} value */ set speaker(value: string); /** * Getter description * @return {string} */ get description(): string; /** * Setter description * @param {string} value */ set description(value: string); /** * Getter start * @return {Moment} */ get start(): Moment; /** * Setter start * @param {Moment} value */ set start(value: Moment); /** * Getter end * @return {Moment} */ get end(): Moment; /** * Setter end * @param {Moment} value */ set end(value: Moment); /** * Gets the middle between start and end. * * @param start * @param end */ getMiddle(): moment.Moment; /** * Gets the item's duration in milliseconds. */ getDuration(): number; /** * Moves the item's start and end time by the given amount of time. * Is not aware about other items. * * @param milSecToMove */ moveByMilSecs(milSecToMove: number): void; /** * Moves the item's start to the given start time. * Move the item's end time accordingly. * Is not aware about other items. * * @param newStart */ moveByMoment(newStart: Moment): void; toJSON(): IItemJSON; static fromJSON(obj: IItemJSON): Item; }