import * as pulumi from '@pulumi/pulumi';
import type { ItemType } from '@aleph-sdk/message';
import type { Volume } from './volumes';
export type Subscription = Array<{
    sender: string;
    channel: string;
}>;
export interface ProgramInputs {
    channel: pulumi.Input<string>;
    path: pulumi.Input<string>;
    entryPoint: pulumi.Input<string>;
    memory: pulumi.Input<number>;
    runtime: pulumi.Input<string>;
    volumes: pulumi.Input<Array<Volume>>;
    storageEngine: pulumi.Input<ItemType.ipfs | ItemType.storage>;
    accountEnvName: pulumi.Input<string>;
}
export interface ProgramOutputs {
    channel: string;
    path: string;
    entryPoint: string;
    memory: number;
    runtime: string;
    volumes: Array<Volume>;
    storageEngine: ItemType.ipfs | ItemType.storage;
    accountEnvName: string;
    chain: string;
    sender: string;
    type: string;
    item_hash: string;
    aleph_explorer_url: string;
    aleph_vm_url: string;
    zip_hash: string;
}
export declare const getDefaultRuntime: () => string;
export declare class Program extends pulumi.dynamic.Resource {
    readonly channel: pulumi.Output<string>;
    readonly path: pulumi.Output<string>;
    readonly entryPoint: pulumi.Output<string>;
    readonly memory: pulumi.Output<number>;
    readonly runtime: pulumi.Output<string>;
    readonly volumes: pulumi.Output<Array<Volume>>;
    readonly storageEngine: pulumi.Output<ItemType.ipfs | ItemType.storage>;
    readonly accountEnvName: pulumi.Output<string>;
    readonly chain: pulumi.Output<string>;
    readonly sender: pulumi.Output<string>;
    readonly type: pulumi.Output<string>;
    readonly item_hash: pulumi.Output<string>;
    readonly aleph_explorer_url: pulumi.Output<string>;
    readonly aleph_vm_url: pulumi.Output<string>;
    readonly zip_hash: pulumi.Output<string>;
    constructor(name: string, args: ProgramInputs, opts?: pulumi.CustomResourceOptions);
}
