import { ResponseType } from 'axios'; import { AuthTokenResponse, SessionResponse } from './ring-types'; import { ReplaySubject } from 'rxjs'; export declare function clientApi(path: string): string; export declare function appApi(path: string): string; export interface ExtendedResponse { responseTimestamp: number; } export interface EmailAuth { email: string; password: string; } export interface RefreshTokenAuth { refreshToken: string; } export declare type RingAuth = EmailAuth | RefreshTokenAuth; export declare class RingRestClient { private authOptions; refreshToken: string | undefined; private authPromise; private sessionPromise; using2fa: boolean; onRefreshTokenUpdated: ReplaySubject<{ oldRefreshToken?: string | undefined; newRefreshToken: string; }>; constructor(authOptions: RingAuth); private getGrantData; getAuth(twoFactorAuthCode?: string): Promise; private fetchNewSession; getSession(): Promise; private refreshAuth; private refreshSession; request(options: { method?: 'GET' | 'POST' | 'PUT'; url: string; data?: any; json?: boolean; responseType?: ResponseType; }): Promise; getCurrentAuth(): Promise; }