import { Obj } from '../entity.js';
import { ObjOptions, InstanceObjOptions } from './base.js';
export interface ProcessObjOptions extends ObjOptions {
    timeout?: number;
    memoryLimit?: number;
    env?: {
        [key: string]: string;
    };
    secrets?: {
        [key: string]: string;
    };
}
export declare class ProcessObj extends Obj<'Process'> {
    readonly typeOf: "Process";
    /** Function timeout in milliseconds */
    timeout?: number;
    /** Memory limit in MB */
    memoryLimit?: number;
    /** Environment variables specific to this function */
    env?: {
        [key: string]: string;
    };
    /** Key-value pairs of secrets available to this object */
    secrets?: {
        [key: string]: string;
    };
    constructor(opts: ProcessObjOptions);
}
export declare function isProcessObj(obj: any): obj is ProcessObj;
export interface ProcessInstanceObjOptions extends InstanceObjOptions {
    startedAt?: number;
    stoppedAt?: number;
}
export declare class ProcessInstanceObj extends Obj<'ProcessInstance'> {
    readonly typeOf: "ProcessInstance";
    startedAt?: number;
    stoppedAt?: number;
    constructor(opts: ProcessInstanceObjOptions);
    get instanceOfId(): string | undefined;
}
export declare function isProcessInstanceObj(obj: any): obj is ProcessInstanceObj;
export interface FunctionObjOptions extends ObjOptions {
    timeout?: number;
    memoryLimit?: number;
    env?: {
        [key: string]: string;
    };
    secrets?: {
        [key: string]: string;
    };
}
export declare class FunctionObj extends Obj<'Function'> {
    readonly typeOf: "Function";
    /** Function timeout in milliseconds */
    timeout?: number;
    /** Memory limit in MB */
    memoryLimit?: number;
    /** Environment variables specific to this function */
    env?: {
        [key: string]: string;
    };
    /** Key-value pairs of secrets available to this object */
    secrets?: {
        [key: string]: string;
    };
    constructor(opts: FunctionObjOptions);
}
export declare function isFunctionObj(obj: any): obj is FunctionObj;
export interface FunctionInstanceObjOptions extends InstanceObjOptions {
    startedAt?: number;
    stoppedAt?: number;
}
export declare class FunctionInstanceObj extends Obj<'FunctionInstance'> {
    readonly typeOf: "FunctionInstance";
    startedAt: number;
    stoppedAt?: number;
    constructor(opts: FunctionInstanceObjOptions);
    get instanceOfId(): string | undefined;
}
export declare function isFunctionInstanceObj(obj: any): obj is FunctionInstanceObj;
export interface ServiceObjOptions extends ObjOptions {
    env?: {
        [key: string]: string;
    };
    secrets?: {
        [key: string]: string;
    };
}
export declare class ServiceObj extends Obj<'Service'> {
    readonly typeOf: "Service";
    /** Service type (e.g., 'http', 'grpc', 'websocket') */
    /** Service port */
    /** Service host */
    /** Service health check endpoint */
    /** Service version */
    /** Environment variables specific to this service */
    env?: {
        [key: string]: string;
    };
    /** Secrets available to this service */
    secrets?: {
        [key: string]: string;
    };
    /** Service scaling configuration */
    /** Service deployment configuration */
    constructor(opts: ServiceObjOptions);
}
export declare function isServiceObj(obj: any): obj is ServiceObj;
