from typing import List, Optional

class File(): ...

class Job(): ...

class Initialize(): ...

class Description(): ...

class Meta(): ...

class ApptainerConfig(): ...

def metadata(namespace: str, batch_name: str, capabilities: List[str], matrix_username: Optional[str] = None) -> Meta: ...

def initialize(sif_path: str, requried_files: List[File], required_mounts: List[str]) -> Initialize: ...

def job(name: str, requried_files: List[File]) -> Job: ...

def description(initialize: Initialize, jobs: List[Job]) -> Description: ...

def file(path: str, relative=False, alias=None) -> File: ...

def apptainer_config(meta: Meta, description: Description) -> ApptainerConfig: ...

def write_config_to_file(config: ApptainerConfig, path: str): ...
