import ApplicationClient from './ApplicationClient'; import ChargebeeClient from './ChargebeeClient'; import DeviceClient from './DeviceClient'; import FileUploadClient from './FileUploadClient'; import PlaylistClient from './PlaylistClient'; import PresentationClient from './PresentationClient'; import ThemeClient from './ThemeClient'; import UserClient from './UserClient'; import FolderClient from './FolderClient'; import DomainClient from './DomainClient'; import ResourceClient from './ResourceClient'; export declare type ApiClientFetcher = (input: RequestInfo, init?: RequestInit | undefined) => Promise; export interface ApiClientOptions { /** The base url for the api client. */ baseUrl: string; /** The (optional) access token to use when making requests. */ accessToken?: string; /** The (optional) access token getter. */ getAccessToken?: (opts: RequestOptions) => Promise; /** Set to true to use the Authorization: Bearer scheme */ isBearerToken?: boolean; /** A function to handle the underlying fetch request */ fetcher: ApiClientFetcher; } export declare type MethodTypes = 'GET' | 'POST' | 'PUT' | 'DELETE' | 'PATCH'; export interface RequestOptions { method: MethodTypes; url: string; body?: RequestBody; } export default class ApiClient implements FolderClient, ApplicationClient, ChargebeeClient, DeviceClient, FileUploadClient, PresentationClient, PlaylistClient, ThemeClient, UserClient, DomainClient, ResourceClient { getDevicesFolder: (this: ApiClient) => Promise; getLibraryFolder: (this: ApiClient) => Promise; getFolder: (this: ApiClient, folderId: string) => Promise; createFolder: (this: ApiClient, folder: import(".").CreateFolder) => Promise; updateFolder: (this: ApiClient, folderId: string, folder: Partial) => Promise; deleteFolder: (this: ApiClient, folderId: string) => Promise; moveFolderToFolder: (this: ApiClient, folderId: string, parentFolderId: string | null) => Promise; getDevices: (this: ApiClient) => Promise; getDevice: (this: ApiClient, id: string) => Promise; publishDevice: (this: ApiClient, id: string) => Promise; registerDevice: (this: ApiClient, { activationCode, name }: import(".").RegisterDevice) => Promise; updateDevice: (this: ApiClient, id: string, params: Partial) => Promise; restartDevice: (this: ApiClient, id: string) => Promise; getSYBSoundZone: (this: ApiClient, id: string) => Promise; generateSYBPairingCode: (this: ApiClient, id: string) => Promise; moveDeviceToFolder: (this: ApiClient, deviceId: string, folderId: string) => Promise; getAffectedDevices: (this: ApiClient, body: { presentationIds?: string[] | undefined; playlistIds?: string[] | undefined; folderIds?: string[] | undefined; }) => Promise; deviceHeartbeat: (this: ApiClient) => Promise; getDevicePublishedContent: (this: ApiClient) => Promise; getProfile: (this: ApiClient) => Promise; updateProfile: (this: ApiClient & UserClient, profile: import(".").Profile) => Promise; masquerade: (this: ApiClient, email: string) => Promise; unsubscribe: (this: ApiClient, userId: string, email?: string) => Promise; getUserStatus: (this: ApiClient & UserClient, email: string) => Promise; getPresentations: (this: ApiClient, filter?: { ids: string[]; } | undefined) => Promise; deletePresentation: (this: ApiClient, id: string) => Promise; updatePresentation: (this: ApiClient, id: string, params: Partial) => Promise<[import(".").Presentation, import(".").NewFileUploads]>; createPresentation: (this: ApiClient, params: Partial) => Promise<[import(".").Presentation, import(".").NewFileUploads]>; movePresentationToFolder: (this: ApiClient, presentationId: string, folderId: string | null) => Promise; getPlaylists: (this: ApiClient, filter?: { ids: string[]; } | undefined) => Promise; createPlaylist: (this: ApiClient, playlist: import(".").Playlist) => Promise; updatePlaylist: (this: ApiClient, playlistId: string, playlist: Partial) => Promise; deletePlaylist: (this: ApiClient, playlistId: string) => Promise; movePlaylistToFolder: (this: ApiClient, playlistId: string, folderId: string | null) => Promise; uploadFile: (this: ApiClient, fileUploadId: string, uploadUrl: string, file: File) => Promise; getApplications: (this: ApiClient) => Promise; getThemes: (this: ApiClient) => Promise; updateTheme: (this: ApiClient, id: string, theme: Partial) => Promise<{ id: string; name: string; backgroundColor: string; backgroundImage: string; backgroundImagePortrait: string; headingTextColor: string; headingFont: string; heading2TextColor: string; heading2Font: string; bodyTextColor: string; bodyFont: string; borderColor: string; resource: import(".").Resource; }>; createTheme: (this: ApiClient, theme: Partial) => Promise<{ id: string; name: string; backgroundColor: string; backgroundImage: string; backgroundImagePortrait: string; headingTextColor: string; headingFont: string; heading2TextColor: string; heading2Font: string; bodyTextColor: string; bodyFont: string; borderColor: string; resource: import(".").Resource; }>; getDomain: (this: ApiClient) => Promise; updateDomain: (this: ApiClient, domain: import(".").Domain) => Promise; inviteToDomain: (this: ApiClient, email: string) => Promise; setProfileDomainRole: (this: ApiClient, profileId: string, domainRole: import(".").DomainRole) => Promise; createResourceACL: (this: ApiClient, acl: import(".").CreateResourceACL) => Promise; deleteResourceACL: (this: ApiClient, aclId: string) => Promise; generateChargebeePortal: (this: ApiClient) => Promise; protected baseUrl: string; protected accessToken?: string; protected getAccessToken?: (opts: RequestOptions) => Promise; protected isBearerToken: boolean; protected fetcher: ApiClientFetcher; constructor(opts: ApiClientOptions); setAccessToken(accessToken: string): void; requestProtected(opts: RequestOptions): Promise; requestPublic(opts: RequestOptions): Promise; }