import * as Token from './token' export interface IMachine { login?: string password?: string account?: string } export interface Options { pre?: string post?: string elements?: Element[] } export declare class Prop extends Token { type: string name: Token.MachineProps value: string constructor( opts: Options & { name: Token.MachineProps value: string }, ) protected readonly _content: string } export interface MachineOptions extends Options { login?: string password?: string account?: string } export abstract class MachineBase extends Token { protected tokens: (Prop | Comment)[] constructor({ login, password, account, ...opts }?: MachineOptions) login: string | undefined password: string | undefined account: string | undefined addProp(prop: Prop): void private getProp(name) private setProp(name, value) } export declare class Machine extends MachineBase implements Token.Machine { type: 'machine' host: string constructor({ host, ...opts }: MachineOptions & { host: string }) protected readonly _content: string } export declare class DefaultMachine extends MachineBase implements Token.Default { type: 'default' protected readonly _content: string } export interface Machines { [host: string]: IMachine } export declare function machinesProxy(tokens?: Token.Token[]): Machines