import type { Observable } from 'rxjs'; import type { Application } from '../application/application.model'; export interface IRegion { account?: string; availabilityZones?: string[]; deprecated?: boolean; endpoint?: string; faultDomains?: string[]; name: string; preferredZones?: string[]; } export interface IAccount { accountId: string; name: string; requiredGroupMembership: string[]; type: string; } export interface IArtifactAccount { name: string; types: string[]; } export interface IAccountDetails extends IAccount { accountType: string; authorized: boolean; awsAccount?: string; awsVpc?: string; bastionHost?: string; challengeDestructiveActions: boolean; cloudProvider: string; defaultKeyPair?: string; environment: string; primaryAccount: boolean; regions: IRegion[]; registry?: string; namespaces?: string[]; spinnakerKindMap?: { [k: string]: string; }; } export interface IAggregatedAccounts { [credentials: string]: IAccountDetails; } export interface IZone { [key: string]: string[]; } export interface IAccountZone { [key: string]: IZone; } export declare class AccountService { static accounts$: Observable; static providers$: Observable; static initialize(): void; static challengeDestructiveActions(account: string): PromiseLike; static getArtifactAccounts(): PromiseLike; static getAccountDetails(account: string): PromiseLike; static getAllAccountDetailsForProvider(provider: string): PromiseLike; static getAvailabilityZonesForAccountAndRegion(provider: string, account: string, region: string): PromiseLike; static getCredentialsKeyedByAccount(provider?: string): PromiseLike; static getPreferredZonesByAccount(provider: string): PromiseLike; static getRegionsForAccount(account: string): PromiseLike; static getUniqueAttributeForAllAccounts(provider: string, attribute: string): PromiseLike; static listAllAccounts(provider?: string): PromiseLike; static listAccounts(provider?: string): PromiseLike; static applicationAccounts(application?: Application): PromiseLike; static listProviders$(application?: Application): Observable; static listProviders(application?: Application): PromiseLike; static getAccountForInstance(cloudProvider: string, instanceId: string, app: Application): PromiseLike; }