import { DeesElement, type TemplateResult } from '@design.estate/dees-element';
declare global {
    interface HTMLElementTagNameMap {
        'sz-service-create-view': SzServiceCreateView;
    }
}
export interface IRegistry {
    id: string;
    name: string;
    url: string;
}
export interface IPortMapping {
    hostPort: string;
    containerPort: string;
    protocol: 'tcp' | 'udp';
}
export interface IEnvVar {
    key: string;
    value: string;
}
export interface IVolumeMount {
    hostPath: string;
    containerPath: string;
    readOnly: boolean;
}
export interface IServiceConfig {
    name: string;
    image: string;
    ports: IPortMapping[];
    envVars: IEnvVar[];
    volumes: IVolumeMount[];
    cpuLimit: string;
    memoryLimit: string;
    restartPolicy: 'always' | 'on-failure' | 'never';
    networkMode: string;
}
export declare class SzServiceCreateView extends DeesElement {
    static demo: () => TemplateResult<1>;
    accessor registries: IRegistry[];
    accessor loading: boolean;
    private accessor serviceName;
    private accessor imageUrl;
    private accessor selectedRegistry;
    private accessor ports;
    private accessor envVars;
    private accessor volumes;
    private accessor cpuLimit;
    private accessor memoryLimit;
    private accessor restartPolicy;
    private accessor networkMode;
    private accessor showAdvanced;
    static styles: import("@design.estate/dees-element").CSSResult[];
    render(): TemplateResult;
    private isValid;
    private addPort;
    private removePort;
    private updatePort;
    private addEnvVar;
    private removeEnvVar;
    private updateEnvVar;
    private addVolume;
    private removeVolume;
    private updateVolume;
    private handleCancel;
    private handleCreate;
    reset(): void;
}
