/** * Copyright 2022 Gravwell, Inc. All rights reserved. * * Contact: [legal@gravwell.io](mailto:legal@gravwell.io) * * This software may be modified and distributed under the terms of the MIT * license. See the LICENSE file for details. */ import { APISubscription } from '~/functions/utils/api-subscription'; import { File } from '~/functions/utils/file'; import { BuildableKit } from '~/models/kit/buildable-kit'; import { InstallableKit } from '~/models/kit/installable-kit'; import { KitArchive } from '~/models/kit/kit-archive'; import { KitInstallationStatus } from '~/models/kit/kit-installation-status'; import { LocalKit } from '~/models/kit/local-kit'; import { RemoteKit } from '~/models/kit/remote-kit'; export interface KitsService { readonly get: { readonly one: { readonly local: (kitID: string) => Promise; readonly remote: (kitID: string) => Promise; }; readonly all: { readonly local: () => Promise>; readonly remote: () => Promise>; }; }; readonly build: { readonly one: { readonly local: (data: BuildableKit) => Promise; }; }; readonly upload: { readonly one: { readonly local: (kit: File) => Promise; readonly remote: (kitID: string) => Promise; }; }; readonly download: { readonly one: { readonly local: (kitID: string) => Promise; readonly remote: (kitID: string) => Promise; }; }; readonly stage: { readonly one: (data: File | RemoteKit) => Promise; }; readonly install: { readonly one: (data: InstallableKit) => Promise>; }; readonly uninstall: { readonly one: (kitID: string, force: boolean) => Promise; readonly all: (force: boolean) => Promise; }; readonly delete: { readonly one: (kitID: string) => Promise; }; readonly archives: { readonly get: { readonly all: () => Promise>; }; readonly delete: { readonly one: (archiveID: string) => Promise; }; }; }