package nitro:plugin;
world interface-world {
export run-plugin: func(hook: string, arg: string, hook-version: u32) -> u32;
export get-result: func() -> string;
import get-custom-config: func() -> option<string>;
import get-persistent-state: func() -> string;
import set-persistent-state: func(state: string);
import get-data-dir: func() -> string;
import get-config-dir: func() -> string;
import get-plugin-dir: func() -> string;
import get-current-dir: func() -> string;
import get-home-dir: func() -> string;
import get-os-string: func() -> string;
import get-arch-string: func() -> string;
import get-pointer-width: func() -> u32;
import update-hardlink: func(src: string, tgt: string) -> result<_, string>;
import update-link: func(src: string, tgt: string) -> result<_, string>;
import run-command: func(cmd: string, args: list<string>, working-dir: option<string>, stdout-file: option<string>, suppress-command-window: bool, silent: bool, wait: bool) -> result<tuple<s32, u32>, string>;
import get-instances: func() -> option<list<tuple<string, string>>>;
import get-templates: func() -> option<list<tuple<string, string>>>;
import get-instance-dir: func(instance: string) -> result<option<string>, string>;
import create-instance: func(id: string, config: string) -> result<_, string>;
import create-template: func(id: string, config: string) -> result<_, string>;
import launch-instance: func(instance: string, account: option<string>) -> result<_, string>;
import download-bytes: func(url: string) -> result<list<u8>, string>;
import download-text: func(url: string) -> result<string, string>;
import download-file: func(url: string, path: string) -> result<_, string>;
import download-files: func(urls: list<string>, paths: list<string>, skip-existing: bool) -> result<_, string>;
import output-display-text: func(text: string, level: u8);
import output-display-message: func(message: string, level: u8);
import output-start-process: func();
import output-end-process: func();
import output-start-section: func();
import output-end-section: func();
}