import { type QueryParams } from "@dfinity/utils";
import { Principal } from "@icp-sdk/core/principal";
import type { IcManagementDid } from "../../declarations";
export declare enum LogVisibility {
    Controllers = 0,
    Public = 1
}
export interface CanisterSettings {
    controllers?: string[];
    freezingThreshold?: bigint;
    memoryAllocation?: bigint;
    computeAllocation?: bigint;
    reservedCyclesLimit?: bigint;
    logVisibility?: LogVisibility;
    wasmMemoryLimit?: bigint;
    wasmMemoryThreshold?: bigint;
    environmentVariables?: IcManagementDid.environment_variable[];
}
export declare class UnsupportedLogVisibility extends Error {
}
export declare const toCanisterSettings: ({ controllers, freezingThreshold, memoryAllocation, computeAllocation, reservedCyclesLimit, logVisibility, wasmMemoryLimit, wasmMemoryThreshold, environmentVariables, }?: CanisterSettings) => IcManagementDid.canister_settings;
export interface CreateCanisterParams {
    settings?: CanisterSettings;
    senderCanisterVersion?: bigint;
}
export interface UpdateSettingsParams {
    canisterId: Principal;
    senderCanisterVersion?: bigint;
    settings: CanisterSettings;
}
export interface InstallCodeParams {
    mode: IcManagementDid.canister_install_mode;
    canisterId: Principal;
    wasmModule: Uint8Array;
    arg: Uint8Array;
    senderCanisterVersion?: bigint;
}
export interface UploadChunkParams extends Pick<IcManagementDid.upload_chunk_args, "chunk"> {
    canisterId: Principal;
}
export interface ClearChunkStoreParams {
    canisterId: Principal;
}
export interface StoredChunksParams {
    canisterId: Principal;
}
export interface InstallChunkedCodeParams extends Omit<InstallCodeParams, "canisterId" | "wasmModule"> {
    chunkHashesList: Array<IcManagementDid.chunk_hash>;
    targetCanisterId: Principal;
    storeCanisterId?: Principal;
    wasmModuleHash: string | Uint8Array;
}
export interface UninstallCodeParams {
    canisterId: Principal;
    senderCanisterVersion?: bigint;
}
export interface ProvisionalCreateCanisterWithCyclesParams {
    amount?: bigint;
    settings?: CanisterSettings;
    canisterId?: Principal;
}
export interface CanisterStatusParams extends QueryParams {
    canisterId: Principal;
}
