import { Observable } from '../libs'; export interface IGithubRepo { repo: string; file: (path: string, branch?: string) => IGithubFileMonitor; } export interface IGithubFileMonitor { date: Date; path: string; content?: string; events$: Observable; errors$: Observable; changed$: Observable; monitor: (delay: number, repeat: number) => IGithubFileMonitor; get: () => Promise; isDisposed: boolean; dispose: () => void; } export interface IGithubData { content?: string; isChanged?: boolean; error?: IGithubHttpError; } export interface IGithubFileEvent { content?: string; event: 'PULL_START' | 'PULL_END' | 'CHANGED' | 'ERROR'; error?: IGithubHttpError; } export interface IGithubFileChangeEvent { content?: string; } export interface IGithubHttpError { message: string; status: number; }