export declare namespace Sardines {
    interface ServiceRuntime {
        name: string;
        type: string;
    }
    interface Service {
        name: string;
        module: string;
        arguments: ServiceRuntime[];
        returnType: string;
        isAsync: boolean;
        filepath: string;
    }
    interface ServiceIdentity {
        application: string;
        module: string;
        name: string;
        version: string;
    }
    interface RepositoryEntryAddress {
        type: string;
        providerInfo: any;
    }
    interface RepositoryEntry {
        address: RepositoryEntryAddress;
        user: string;
        password: string;
        token?: string;
    }
    interface Module {
        [serviceName: string]: string;
    }
    interface Application {
        [moduleName: string]: Module;
    }
    interface DriverSettings {
        name: string;
        locationType: LocationType;
        protocols: string[];
    }
    interface Config {
        application: string;
        exeDir?: string;
        srcRootDir?: string;
        sardinesDir?: string;
        remoteServices?: {
            [appName: string]: Application;
        };
        repositoryEntries: RepositoryEntry[];
        drivers?: DriverSettings[];
    }
    enum LocationType {
        npm_link = "npm_link",
        npm = "npm",
        file = "file"
    }
    interface LocationSettings {
        name?: string;
        locationType: LocationType;
        location?: string;
    }
    interface ServiceSettingsForProvider {
        module: string;
        name: string;
        settings: any;
    }
    interface ApplicationSettingsForProvider {
        application: string;
        commonSettings: any;
        serviceSettings: ServiceSettingsForProvider[];
    }
    interface ProviderSettings {
        code: LocationSettings;
        providerSettings: any;
        applicationSettings: ApplicationSettingsForProvider[];
    }
    interface ServiceArgument {
        name: string;
        type: string;
    }
    interface ServiceRuntime {
        service: string;
        arguments?: ServiceArgument[];
    }
    interface ApplicationSettings {
        name: string;
        code: LocationSettings;
        init: {
            service: string;
            arguments: any[];
        }[];
    }
    interface DeployPlan {
        providers: ProviderSettings[];
        applications: ApplicationSettings[];
    }
}
//# sourceMappingURL=sardines_interfaces.d.ts.map