export interface RouterOSSentence {
    type: string;
    words: string[];
    values: Record<string, string>;
}
export interface RouterOSCommandResult {
    success: boolean;
    sentences: RouterOSSentence[];
    records: Record<string, string>[];
    done: Record<string, string>;
    rawText: string;
    error?: string;
}
export interface RouterOSClientOptions {
    host: string;
    port?: number;
    username: string;
    password: string;
    useSsl?: boolean;
    timeoutMs?: number;
}
export declare const extractRouterOSText: (result: RouterOSCommandResult) => string;
export declare class RouterOSApiClient {
    private readonly options;
    private socket;
    private buffer;
    private currentSentenceWords;
    private activeResponse;
    private connected;
    private loggedIn;
    constructor(options: RouterOSClientOptions);
    open(): Promise<void>;
    close(): Promise<void>;
    executeWords(words: string[], timeoutMs?: number): Promise<RouterOSCommandResult>;
    probeDevice(): Promise<{
        identity: Record<string, string> | null;
        resource: Record<string, string> | null;
        routerboard: Record<string, string> | null;
        rawText: string;
    }>;
    exportConfig(baseName: string, timeoutMs?: number): Promise<string>;
    printLogs(timeoutMs?: number): Promise<RouterOSCommandResult>;
    runInlineScript(scriptBody: string, prefix?: string, timeoutMs?: number): Promise<RouterOSCommandResult>;
    private readFileContents;
    private deleteFile;
    private connect;
    private handleData;
    private tryReadWord;
    private onSentence;
    private buildResult;
    private failActive;
}
//# sourceMappingURL=routeros-api.d.ts.map