import * as t from 'io-ts'; export declare const Dependency: t.TypeC<{ autoinstall: t.UnionC<[t.UndefinedC, t.BooleanC]>; depends_on: t.UnionC<[t.UndefinedC, t.ArrayC]>; description: t.UnionC<[t.UndefinedC, t.StringC]>; detect: t.UnionC<[t.UndefinedC, t.StringC]>; install: t.UnionC<[t.UndefinedC, t.StringC]>; instructions: t.UnionC<[t.UndefinedC, t.StringC]>; open: t.UnionC<[t.UndefinedC, t.BooleanC]>; resources: t.UnionC<[t.UndefinedC, t.ArrayC]>; sudo: t.UnionC<[t.UndefinedC, t.BooleanC]>; }>; export declare type Dependency = t.TypeOf; export interface LoadedDependency extends Omit { _cwd: string; _name: string; sudo: boolean; } export declare const System: t.RecordC; depends_on: t.UnionC<[t.UndefinedC, t.ArrayC]>; description: t.UnionC<[t.UndefinedC, t.StringC]>; detect: t.UnionC<[t.UndefinedC, t.StringC]>; install: t.UnionC<[t.UndefinedC, t.StringC]>; instructions: t.UnionC<[t.UndefinedC, t.StringC]>; open: t.UnionC<[t.UndefinedC, t.BooleanC]>; resources: t.UnionC<[t.UndefinedC, t.ArrayC]>; sudo: t.UnionC<[t.UndefinedC, t.BooleanC]>; }>]>>; export declare type System = t.TypeOf; export interface LoadedSystem { [key: string]: LoadedDependency; } export declare type Dependencies = LoadedSystem; export declare const Systems: t.RecordC; depends_on: t.UnionC<[t.UndefinedC, t.ArrayC]>; description: t.UnionC<[t.UndefinedC, t.StringC]>; detect: t.UnionC<[t.UndefinedC, t.StringC]>; install: t.UnionC<[t.UndefinedC, t.StringC]>; instructions: t.UnionC<[t.UndefinedC, t.StringC]>; open: t.UnionC<[t.UndefinedC, t.BooleanC]>; resources: t.UnionC<[t.UndefinedC, t.ArrayC]>; sudo: t.UnionC<[t.UndefinedC, t.BooleanC]>; }>]>>]>>; export declare type Systems = t.TypeOf; export interface LoadedSystems { [key: string]: LoadedSystem; } export declare const Config: t.TypeC<{ autoinstall: t.UnionC<[t.UndefinedC, t.BooleanC]>; includes: t.UnionC<[t.UndefinedC, t.ArrayC]>; name: t.UnionC<[t.UndefinedC, t.StringC]>; systems: t.RecordC; depends_on: t.UnionC<[t.UndefinedC, t.ArrayC]>; description: t.UnionC<[t.UndefinedC, t.StringC]>; detect: t.UnionC<[t.UndefinedC, t.StringC]>; install: t.UnionC<[t.UndefinedC, t.StringC]>; instructions: t.UnionC<[t.UndefinedC, t.StringC]>; open: t.UnionC<[t.UndefinedC, t.BooleanC]>; resources: t.UnionC<[t.UndefinedC, t.ArrayC]>; sudo: t.UnionC<[t.UndefinedC, t.BooleanC]>; }>]>>]>>; }>; export declare type Config = t.TypeOf; export interface LoadedConfig extends Omit { systems: LoadedSystems; } export declare class ConfigLoader { private loaded; private recursiveTemplate; private getIncludes; load(config: string | Config, cwd?: string): LoadedConfig; private loadSystems; private loadSystem; private loadDependency; } export declare function validate(value: T, Type: t.Type): void;