export type FluxManagerData = {
    components: string;
};
export interface KubernetesResource {
    apiVersion: string;
    metadata: {
        name: string;
        namespace: string;
    };
}
export interface HelmRelease extends KubernetesResource {
    kind: 'HelmRelease';
    spec: {
        chart: {
            spec: {
                chart: string;
                sourceRef: {
                    kind: string;
                    name: string;
                    namespace?: string;
                };
                version?: string;
            };
        };
    };
}
export interface HelmRepository extends KubernetesResource {
    kind: 'HelmRepository';
    spec: {
        url: string;
    };
}
export interface GitRepository extends KubernetesResource {
    kind: 'GitRepository';
    spec: {
        ref: {
            tag?: string;
            commit?: string;
        };
        url: string;
    };
}
export interface OciRepository extends KubernetesResource {
    kind: 'OCIRepository';
    spec: {
        ref: {
            digest?: string;
            tag?: string;
        };
        url: string;
    };
}
export type FluxResource = HelmRelease | HelmRepository | GitRepository | OciRepository;
export interface FluxFile {
    file: string;
}
export interface ResourceFluxManifest extends FluxFile {
    kind: 'resource';
    resources: FluxResource[];
}
export interface SystemFluxManifest extends FluxFile {
    kind: 'system';
    version: string;
    components: string;
}
export type FluxManifest = ResourceFluxManifest | SystemFluxManifest;
