/// <reference types="node" />
/// <reference types="node" />
import { AddAgentInfoRequest, AgentInfoRequest, AgentInfoResponse, AppAuthenticationToken, AppInfo, AppInfoResponse, AttachAppInterfaceRequest, AttachAppInterfaceResponse, CallZomeRequestSigned, CreateCloneCellRequest, CreateCloneCellResponse, DeleteCloneCellRequest, DisableAppRequest, DisableAppResponse, DisableCloneCellRequest, DisableCloneCellResponse, DnaDefinition, DumpFullStateRequest, DumpNetworkStatsRequest, DumpNetworkStatsResponse, DumpStateRequest, DumpStateResponse, EnableAppRequest, EnableAppResponse, EnableCloneCellRequest, EnableCloneCellResponse, FullStateDump, GetCompatibleCellsRequest, GetCompatibleCellsResponse, GetDnaDefinitionRequest, GrantZomeCallCapabilityRequest, HoloHash, InstallAppRequest, IssueAppAuthenticationTokenRequest, IssueAppAuthenticationTokenResponse, ListAppInterfacesResponse, ListAppsRequest, ListAppsResponse, ListCellIdsResponse, ListDnasResponse, NetworkInfoRequest, NetworkInfoResponse, ProvideMemproofsRequest, RegisterDnaRequest, RevokeAgentKeyRequest, RevokeAgentKeyResponse, StartAppRequest, StartAppResponse, StorageInfoRequest, StorageInfoResponse, UninstallAppRequest, UninstallAppResponse, UpdateCoordinatorsRequest, UpdateCoordinatorsResponse } from "@holochain/client";
import { ConductorId } from "./conductor/index.js";
/**
 * @internal
 */
export interface _TryCpCall {
    id: number;
    request: TryCpRequest;
}
/**
 * Log level for a TryCP conductor.
 *
 * @public
 */
export type TryCpConductorLogLevel = "error" | "warn" | "info" | "debug" | "trace";
/**
 * Contains all possible request types.
 *
 * @public
 */
export type TryCpRequest = RequestDownloadDna | RequestSaveDna | RequestConfigurePlayer | RequestStartup | RequestShutdown | RequestReset | RequestConnectAppInterface | RequestDisconnectAppInterface | RequestCallAppInterface | RequestCallAppInterfaceEncoded | RequestCallAdminInterface | RequestDownloadLogs;
/**
 * Request to download a DNA from a URL.
 *
 * @param url - from where to download the DNA
 *
 * @public
 */
export interface RequestDownloadDna {
    type: "download_dna";
    url: string;
}
/**
 * Request to save a DNA to the server's file system.
 *
 * @public
 */
export interface RequestSaveDna {
    type: "save_dna";
    id: string;
    content: Buffer;
}
/**
 * Request to create configuration files and directories for a conductor.
 *
 * @public
 */
export interface RequestConfigurePlayer {
    type: "configure_player";
    id: ConductorId;
    partial_config: string;
}
/**
 * Request startup of a conductor.
 *
 * @public
 */
export interface RequestStartup {
    type: "startup";
    id: ConductorId;
    log_level?: TryCpConductorLogLevel;
}
/**
 * Request shutdown of a conductor.
 *
 * @public
 */
export interface RequestShutdown {
    type: "shutdown";
    id: ConductorId;
    signal?: "SIGTERM" | "SIGKILL" | "SIGINT";
}
/**
 * Request deletion of **all** conductors.
 *
 * @public
 */
export interface RequestReset {
    type: "reset";
}
/**
 * Request to connect an app interface to a conductor.
 *
 * @public
 */
export interface RequestConnectAppInterface {
    type: "connect_app_interface";
    token: AppAuthenticationToken;
    port: number;
}
/**
 * Request to disconnect a connected app interface from a conductor.
 *
 * @public
 */
export interface RequestDisconnectAppInterface {
    type: "disconnect_app_interface";
    port: number;
}
/**
 * Responses are composed of an object with either `Ok` or `Err` as a property for success or error.
 *
 * @internal
 */
export type _TryCpResponse = _TryCpResponseSuccess | _TryCpResponseError;
/**
 * @internal
 */
export declare enum _TryCpResponseResult {
    Ok = "Ok",
    Err = "Err"
}
/**
 * @internal
 */
export interface _TryCpResponseSuccess {
    [_TryCpResponseResult.Ok]: _TryCpSuccessResponseSeralized;
}
/**
 * @internal
 */
export interface _TryCpResponseError {
    [_TryCpResponseResult.Err]: TryCpResponseErrorValue;
}
/**
 * @internal
 */
export type _TryCpSuccessResponseSeralized = typeof TRYCP_SUCCESS_RESPONSE | string | Uint8Array;
/**
 * Possible values a for success response from the TryCP server.
 *
 * @public
 */
export type TryCpSuccessResponse = typeof TRYCP_SUCCESS_RESPONSE | string | TryCpApiResponse;
/**
 * Empty success response.
 *
 * @public
 */
export declare const TRYCP_SUCCESS_RESPONSE: null;
/**
 * Error response values.
 *
 * @public
 */
export type TryCpResponseErrorValue = string | Error;
/**
 * Possible responses from the Admin and App APIs.
 *
 * @public
 */
export type TryCpApiResponse = AdminApiResponse | AppApiResponse | TryCpControlResponse | ApiErrorResponse;
/**
 * A response from the TryCP server.
 *
 * @public
 */
export type TryCpControlResponse = DownloadLogsResponseType;
/**
 * Enumerated response for downloading logs.
 *
 * @public
 */
export interface DownloadLogsResponseType {
    type: "download_logs";
    data: DownloadLogsResponse;
}
/**
 * Response for downloading logs.
 *
 * @public
 */
export interface DownloadLogsResponse {
    lair_stderr: Uint8Array;
    conductor_stdout: Uint8Array;
    conductor_stderr: Uint8Array;
}
/**
 * Error response from the Admin or App API.
 *
 * @public
 */
export interface ApiErrorResponse {
    type: "error";
    value: {
        type: string;
        value: string;
    };
}
/**
 * @internal
 */
export type _TryCpResponseWrapper = _TryCpResponseWrapperResponse | _TryCpResponseWrapperSignal;
/**
 * @internal
 */
export interface _TryCpResponseWrapperResponse {
    type: "response";
    id: number;
    response: _TryCpResponse;
}
/**
 * @internal
 */
export interface _TryCpResponseWrapperSignal {
    type: "signal";
    port: number;
    data: Uint8Array;
}
/**
 * Request a call to the App API.
 *
 * @public
 */
export interface RequestCallAppInterface {
    type: "call_app_interface";
    port: number;
    message: RequestCallAppInterfaceMessage;
}
/**
 * All possible calls to the App API.
 *
 * @public
 */
export type RequestCallAppInterfaceMessage = RequestCallZome | RequestAppInfo | RequestProvideMemproofs | RequestEnableApp | RequestCreateCloneCell | RequestEnableCloneCell | RequestDisableCloneCell | RequestNetworkInfo;
/**
 * Request to provide deferred memproofs for an app.
 *
 * @public
 */
export interface RequestProvideMemproofs {
    type: "provide_memproofs";
    value: ProvideMemproofsRequest;
}
/**
 * Request to enable the app.
 *
 * @public
 */
export interface RequestEnableApp {
    type: "enable_app";
}
/**
 * Request to call a zome on a conductor's app interface.
 *
 * @public
 */
export interface RequestCallZome {
    type: "call_zome";
    value: CallZomeRequestSigned;
}
/**
 * Request app info from a conductor.
 *
 * @public
 */
export interface RequestAppInfo {
    type: "app_info";
}
/**
 * Create a clone cell.
 *
 * @public
 */
export interface RequestCreateCloneCell {
    type: "create_clone_cell";
    value: CreateCloneCellRequest;
}
/**
 * Disable a clone cell.
 *
 * @public
 */
export interface RequestDisableCloneCell {
    type: "disable_clone_cell";
    value: DisableCloneCellRequest;
}
/**
 * Enable a disabled clone cell.
 *
 * @public
 */
export interface RequestEnableCloneCell {
    type: "enable_clone_cell";
    value: EnableCloneCellRequest;
}
/**
 * Request network info.
 *
 * @public
 */
export interface RequestNetworkInfo {
    type: "network_info";
    value: NetworkInfoRequest;
}
/**
 * Msgpack encoded request to call an app interface.
 *
 * @public
 */
export interface RequestCallAppInterfaceEncoded extends Omit<RequestCallAppInterface, "message"> {
    message: Uint8Array;
}
/**
 * App API Responses.
 *
 * @public
 */
export type AppApiResponse = AppApiResponseAppInfo | AppApiResponseMemproofsProvided | AppApiResponseZomeCall | AppApiResponseCloneCellCreated | AppApiResponseCloneCellEnabled | AppApiResponseCloneCellDisabled | AppApiResponseNetworkInfo;
/**
 * @public
 */
export declare const AppApiResponseOk = "ok";
/**
 * @public
 */
export interface AppApiResponseAppInfo {
    type: "app_info";
    value: AppInfoResponse;
}
/**
 * @public
 */
export interface AppApiResponseMemproofsProvided {
    type: typeof AppApiResponseOk;
}
/**
 * @public
 */
export interface AppApiResponseZomeCall {
    type: "zome_call";
    value: Uint8Array;
}
/**
 * @public
 */
export interface AppApiResponseCloneCellCreated {
    type: "clone_cell_created";
    value: CreateCloneCellResponse;
}
/**
 * @public
 */
export interface AppApiResponseCloneCellEnabled {
    type: "clone_cell_enabled";
    value: EnableCloneCellResponse;
}
/**
 * @public
 */
export interface AppApiResponseCloneCellDisabled {
    type: "clone_cell_disabled";
    value: DisableCloneCellResponse;
}
/**
 * @public
 */
export interface AppApiResponseNetworkInfo {
    type: "network_info";
    value: NetworkInfoResponse;
}
/**
 * Request a call to the Admin API.
 *
 * @public
 */
export interface RequestCallAdminInterface {
    type: "call_admin_interface";
    id: ConductorId;
    message: RequestAdminInterfaceMessage;
}
/**
 * Request type for fetching logs from a given conductor.
 *
 * @public
 */
export interface RequestDownloadLogs {
    type: "download_logs";
    id: ConductorId;
}
/**
 * The types of all possible calls to the Admin API.
 *
 * @public
 */
export type RequestAdminInterfaceMessageType = "add_agent_info" | "agent_info" | "attach_app_interface" | "connect_app_interface" | "delete_clone_cell" | "disable_app" | "dump_full_state" | "dump_network_stats" | "dump_state" | "enable_app" | "generate_agent_pub_key" | "get_compatible_cells" | "get_dna_definition" | "grant_zome_call_capability" | "install_app" | "list_apps" | "list_app_interfaces" | "list_cell_ids" | "list_dnas" | "register_dna" | "revoke_agent_key" | "start_app" | "storage_info" | "uninstall_app" | "update_coordinators" | "issue_app_authentication_token";
/**
 * All possible calls to the Admin API.
 *
 * @public
 */
export interface RequestAdminInterfaceMessage {
    type: RequestAdminInterfaceMessageType;
    value?: AddAgentInfoRequest | AgentInfoRequest | AttachAppInterfaceRequest | DeleteCloneCellRequest | DisableAppRequest | DumpFullStateRequest | DumpNetworkStatsRequest | DumpStateRequest | EnableAppRequest | GetCompatibleCellsRequest | GetDnaDefinitionRequest | GrantZomeCallCapabilityRequest | InstallAppRequest | ListAppsRequest | RegisterDnaRequest | RevokeAgentKeyRequest | StartAppRequest | StorageInfoRequest | UninstallAppRequest | UpdateCoordinatorsRequest | IssueAppAuthenticationTokenRequest;
}
/**
 * All possible responses from the Admin API.
 *
 * @public
 */
export type AdminApiResponse = AdminApiResponseAgentInfo | AdminApiResponseAgentInfoAdded | AdminApiResponseAgentPubKeyGenerated | AdminApiResponseAppDisabled | AdminApiResponseAppEnabled | AdminApiResponseAppInstalled | AdminApiResponseAppInterfaceAttached | AdminApiResponseAppInterfacesListed | AdminApiResponseAppStarted | AdminApiResponseAppUninstalled | AdminApiResponseAppsListed | AdminApiResponseCellIdsListed | AdminApiResponseCloneCellDeleted | AdminApiResponseCoordinatorsUpdated | AdminApiResponseDnasDefinitionReturned | AdminApiResponseGetCompatibleCells | AdminApiResponseDnasListed | AdminApiResponseDnaRegistered | AdminApiResponseFullStateDumped | AdminApiResponseNetworkStatsDumped | AdminApiResponseAgentKeyRevoked | AdminApiResponseStateDumped | AdminApiResponseStorageInfo | AdminApiResponseAppAuthenticationTokenIssued | AdminApiResponseZomeCallCapabilityGranted;
/**
 * @public
 */
export interface AdminApiResponseAgentInfo {
    type: "agent_info";
    value: AgentInfoResponse;
}
/**
 * Delete a disabled clone cell.
 *
 * @public
 */
export interface RequestDeleteCloneCell {
    type: "delete_clone_cell";
    value: DeleteCloneCellRequest;
}
/**
 * @public
 */
export interface AdminApiResponseDnaRegistered {
    type: "dna_registered";
    value: HoloHash;
}
/**
 * @public
 */
export interface AdminApiResponseGetCompatibleCells {
    type: "compatible_cells";
    value: GetCompatibleCellsResponse;
}
/**
 * @public
 */
export interface AdminApiResponseFullStateDumped {
    type: "full_state_dumped";
    value: FullStateDump;
}
/**
 * @public
 */
export interface AdminApiResponseNetworkStatsDumped {
    type: "network_stats_dumped";
    value: DumpNetworkStatsResponse;
}
/**
 * @public
 */
export interface AdminApiResponseStorageInfo {
    type: "storage_info";
    value: StorageInfoResponse;
}
/**
 * @public
 */
export interface AdminApiResponseAppAuthenticationTokenIssued {
    type: "app_authentication_token_issued";
    value: IssueAppAuthenticationTokenResponse;
}
/**
 * @public
 */
export interface AdminApiResponseStateDumped {
    type: "state_dumped";
    value: DumpStateResponse;
}
/**
 * @public
 */
export interface AdminApiResponseZomeCallCapabilityGranted {
    type: "zome_call_capability_granted";
}
/**
 * @public
 */
export interface AdminApiResponseAgentPubKeyGenerated {
    type: "agent_pub_key_generated";
    value: HoloHash;
}
/**
 * @public
 */
export interface AdminApiResponseAgentKeyRevoked {
    type: "agent_key_revoked";
    value: RevokeAgentKeyResponse;
}
/**
 * @public
 */
export interface AdminApiResponseAppInstalled {
    type: "app_installed";
    value: AppInfo;
}
/**
 * @public
 */
export interface AdminApiResponseAppEnabled {
    type: "app_enabled";
    value: EnableAppResponse;
}
/**
 * @public
 */
export interface AdminApiResponseAppDisabled {
    type: "app_disabled";
    value: DisableAppResponse;
}
/**
 * @public
 */
export interface AdminApiResponseAppStarted {
    type: "app_started";
    value: StartAppResponse;
}
/**
 * @public
 */
export interface AdminApiResponseAppUninstalled {
    type: "app_uninstalled";
    value: UninstallAppResponse;
}
/**
 * @public
 */
export interface AdminApiResponseCoordinatorsUpdated {
    type: "coordinators_updated";
    value: UpdateCoordinatorsResponse;
}
/**
 * @public
 */
export interface AdminApiResponseAppsListed {
    type: "apps_listed";
    value: ListAppsResponse;
}
/**
 * @public
 */
export interface AdminApiResponseAppInterfacesListed {
    type: "app_interfaces_listed";
    value: ListAppInterfacesResponse;
}
/**
 * @public
 */
export interface AdminApiResponseCellIdsListed {
    type: "cell_ids_listed";
    value: ListCellIdsResponse;
}
/**
 * @public
 */
export interface AdminApiResponseDnasDefinitionReturned {
    type: "dna_definition_returned";
    value: DnaDefinition;
}
/**
 * @public
 */
export interface AdminApiResponseDnasListed {
    type: "dnas_listed";
    value: ListDnasResponse;
}
/**
 * @public
 */
export interface AdminApiResponseAppInterfaceAttached {
    type: "app_interface_attached";
    value: AttachAppInterfaceResponse;
}
/**
 * @public
 */
export interface AdminApiResponseAgentInfoAdded {
    type: "agent_info_added";
}
/**
 * @public
 */
export interface AdminApiResponseCloneCellDeleted {
    type: "clone_cell_deleted";
}
