/*---------------------------------------------------------------------------------------------
 *  Copyright (c) Microsoft Corporation. All rights reserved.
 *  Licensed under the MIT License. See License.txt in the project root for license information.
 *--------------------------------------------------------------------------------------------*/

export interface IElement {
	tagName: string;
	className: string;
	textContent: string;
	attributes: {
		[name: string]: string;
	};
	children: IElement[];
	top: number;
	left: number;
}
export interface ILocaleInfo {
	language: string;
	locale?: string;
}
export interface ILocalizedStrings {
	open: string;
	close: string;
	find: string;
}
export interface IWindowDriver {
	click(selector: string, xoffset?: number | undefined, yoffset?: number | undefined): Promise<void>;
	setValue(selector: string, text: string): Promise<void>;
	getTitle(): Promise<string>;
	isActiveElement(selector: string): Promise<boolean>;
	getElements(selector: string, recursive: boolean): Promise<IElement[]>;
	getElementXY(
		selector: string,
		xoffset?: number,
		yoffset?: number,
	): Promise<{
		x: number;
		y: number;
	}>;
	typeInEditor(selector: string, text: string): Promise<void>;
	getTerminalBuffer(selector: string): Promise<string[]>;
	writeInTerminal(selector: string, text: string): Promise<void>;
	getLocaleInfo(): Promise<ILocaleInfo>;
	getLocalizedStrings(): Promise<ILocalizedStrings>;
	exitApplication(): Promise<void>;
}
