// Generated by dts-bundle v0.7.3
// Dependencies for this module:
//   ../../coveo-search-ui

declare module 'coveo-search-ui-tests' {
    import * as Fake from "coveo-search-ui-tests/Fake";
    import * as Mock from "coveo-search-ui-tests/MockEnvironment";
    import * as Simulate from "coveo-search-ui-tests/Simulate";
    export { Fake, Mock, Simulate };
}

declare module 'coveo-search-ui-tests/Fake' {
    export * from "coveo-search-ui-tests/Fake/FakeAnalyticsEvents";
    export * from "coveo-search-ui-tests/Fake/FakeEventArgs";
    export * from "coveo-search-ui-tests/Fake/FakeFields";
    export * from "coveo-search-ui-tests/Fake/FakeGroupBy";
    export * from "coveo-search-ui-tests/Fake/FakeResults";
}

declare module 'coveo-search-ui-tests/MockEnvironment' {
    export * from "coveo-search-ui-tests/MockEnvironment/AdvancedComponentsSetup";
    export * from "coveo-search-ui-tests/MockEnvironment/BasicComponentsSetup";
    export * from "coveo-search-ui-tests/MockEnvironment/ComponentsSetup";
    export * from "coveo-search-ui-tests/MockEnvironment/MockComponents";
    export * from "coveo-search-ui-tests/MockEnvironment/MockEnvironmentBuilder";
    export * from "coveo-search-ui-tests/MockEnvironment/OptionsComponentsSetup";
}

declare module 'coveo-search-ui-tests/Simulate' {
    export * from "coveo-search-ui-tests/Simulate/Actions";
    export * from "coveo-search-ui-tests/Simulate/Components";
    export * from "coveo-search-ui-tests/Simulate/Environment";
    export * from "coveo-search-ui-tests/Simulate/Modules";
    export * from "coveo-search-ui-tests/Simulate/Query";
}

declare module 'coveo-search-ui-tests/Fake/FakeAnalyticsEvents' {
    import { IClickEvent, ISearchEvent } from "coveo-search-ui";
    export function createFakeSearchEvent(token?: string): ISearchEvent;
    export function createFakeClickEvent(token?: string): IClickEvent;
}

declare module 'coveo-search-ui-tests/Fake/FakeEventArgs' {
    import { IOmniboxDataRow, IPopulateOmniboxEventArgs } from "coveo-search-ui";
    export function createPopulateOmniboxEventArgs(queryboxContent: string, cursorPosition: number, rows?: IOmniboxDataRow[]): IPopulateOmniboxEventArgs;
}

declare module 'coveo-search-ui-tests/Fake/FakeFields' {
    import { IIndexFieldValue } from "coveo-search-ui";
    export function createFakeFieldValue(token: string, count: number): IIndexFieldValue;
    export function createFakeFieldValues(token: string, count: number): IIndexFieldValue[];
}

declare module 'coveo-search-ui-tests/Fake/FakeGroupBy' {
    import { IGroupByValue, IGroupByResult } from "coveo-search-ui";
    export function createFakeGroupByResult(field: string, token: string, count: number, includeComputedValues?: boolean): IGroupByResult;
    export function createFakeRangeGroupByResult(field: string, start?: number, end?: number, steps?: number): IGroupByResult;
    export function createFakeHierarchicalValue(token: string, currentLevel: number, delimitingCharacter?: string): string;
    export function createFakeHierarchicalGroupByResult(field: string, token: string, numberOfLevel?: number, countByLevel?: number, delimitingCharacter?: string, includeComputedValues?: boolean, weirdCasing?: boolean): IGroupByResult;
    export function createFakeGroupByValue(token: string, count: number, score?: number, computedValue?: number): IGroupByValue;
    export function createFakeGroupByRangeValue(from: number, to: number, token: string, count: number, score?: number, computedValue?: number): IGroupByValue;
}

declare module 'coveo-search-ui-tests/Fake/FakeResults' {
    import { IQueryResult, IQueryResults } from "coveo-search-ui";
    export function createFakeResults(count?: number, token?: string): IQueryResults;
    export function createFakeResultsWithChildResults(count?: number, numberOfChildResults?: number, totalNumberOfChildResult?: number): IQueryResults;
    export function createFakeResult(token?: string): IQueryResult;
    export function createFakeResultWithChildResult(token: string, numberOfChildResult: number, totalNumberOfChildResult?: number): IQueryResult;
    export function createFakeResultWithAttachments(token?: string, numberOfAttachments?: number, attachmentType?: string[], flags?: string, attachmentsFlags?: string[], withSubAttachments?: boolean): IQueryResult;
    export function createFakeFeedItemResult(token: string, nbLikes?: number, nbTopics?: number, hasAttachment?: boolean): IQueryResult;
}

declare module 'coveo-search-ui-tests/MockEnvironment/AdvancedComponentsSetup' {
    import { IBasicComponentSetup, IComponentConstructor, IComponentConstructorWithModalBox, IBasicComponentSetupWithModalBox } from "coveo-search-ui-tests/MockEnvironment/ComponentsSetup";
    import { MockEnvironmentBuilder } from "coveo-search-ui-tests/MockEnvironment/MockEnvironmentBuilder";
    import { IComponentBindings, Component, IQueryResult, OS_NAME } from "coveo-search-ui";
    export type EnvironmentBuilderModifier = (env: MockEnvironmentBuilder) => MockEnvironmentBuilder;
    export interface IAdvancedComponentConstructor<T> {
        new (element: HTMLElement, options: any, bindings: IComponentBindings, result: IQueryResult, os: OS_NAME, ...args: any[]): T;
    }
    export class AdvancedComponentSetupOptions {
        element: HTMLElement;
        cmpOptions: any;
        modifyBuilder: EnvironmentBuilderModifier;
        constructor(element?: HTMLElement, cmpOptions?: any, modifyBuilder?: EnvironmentBuilderModifier);
        merge(toMerge: AdvancedComponentSetupOptions): this;
    }
    export function advancedComponentSetup<T extends Component>(klass: IComponentConstructor<T>, options?: AdvancedComponentSetupOptions, ...args: any[]): IBasicComponentSetup<T>;
    export function advancedComponentSetupWithModalBox<T extends Component>(klass: IComponentConstructorWithModalBox<T>, options?: AdvancedComponentSetupOptions, ...args: any[]): IBasicComponentSetupWithModalBox<T>;
    export function advancedResultComponentSetup<T extends Component>(klass: IAdvancedComponentConstructor<T>, result: IQueryResult, options?: AdvancedComponentSetupOptions, ...args: any[]): IBasicComponentSetup<T>;
}

declare module 'coveo-search-ui-tests/MockEnvironment/BasicComponentsSetup' {
    import { IBasicComponentSetup, IComponentConstructor, IComponentConstructorWithModalBox, IComponentConstructorWithResult, IComponentConstructorWithResultAndModalBox, ISearchInterfaceConstructor, ISearchInterfaceSetup, IBasicComponentSetupWithModalBox } from "coveo-search-ui-tests/MockEnvironment/ComponentsSetup";
    import { Component, SearchInterface } from "coveo-search-ui";
    export function basicComponentSetup<T extends Component>(klass: IComponentConstructor<T>, options?: any, ...args: any[]): IBasicComponentSetup<T>;
    export function basicComponentSetupWithModalBox<T extends Component>(klass: IComponentConstructorWithModalBox<T>, options?: any, ...args: any[]): IBasicComponentSetupWithModalBox<T>;
    export function basicResultComponentSetup<T extends Component>(klass: IComponentConstructorWithResult<T>, options?: any, ...args: any[]): IBasicComponentSetup<T>;
    export function basicResultComponentSetupWithModalBox<T extends Component>(klass: IComponentConstructorWithResultAndModalBox<T>, options?: any, ...args: any[]): IBasicComponentSetupWithModalBox<T>;
    export function basicSearchInterfaceSetup<T extends SearchInterface>(klass: ISearchInterfaceConstructor<T>, ...args: any[]): ISearchInterfaceSetup<T>;
}

declare module 'coveo-search-ui-tests/MockEnvironment/ComponentsSetup' {
    import { Component, IComponentBindings, ModalBox, IQueryResult, ISearchInterfaceOptions, SearchInterface } from "coveo-search-ui";
    import { IMockEnvironment } from "coveo-search-ui-tests/MockEnvironment/MockEnvironmentBuilder";
    export interface IComponentConstructor<T> {
        new (element: HTMLElement, options: any, bindings: IComponentBindings, ...args: any[]): T;
    }
    export interface IBasicComponentSetup<T extends Component> {
        env: IMockEnvironment;
        cmp: T;
    }
    export interface IComponentConstructorWithModalBox<T> {
        new (element: HTMLElement, options: any, bindings: IComponentBindings, modalBox: ModalBox.ModalBox, ...args: any[]): T;
    }
    export interface IBasicComponentSetupWithModalBox<T extends Component> extends IBasicComponentSetup<T> {
        modalBox: ModalBox.ModalBox;
    }
    export interface IComponentConstructorWithResult<T> {
        new (element: HTMLElement, options: any, bindings: IComponentBindings, result: IQueryResult, ...args: any[]): T;
    }
    export interface IComponentConstructorWithResultAndModalBox<T> {
        new (element: HTMLElement, options: any, bindings: IComponentBindings, result: IQueryResult, modalBox: ModalBox.ModalBox, ...args: any[]): T;
    }
    export interface ISearchInterfaceConstructor<T extends SearchInterface> {
        new (element: HTMLElement, options?: ISearchInterfaceOptions, analyticsOptions?: any, _window?: Window, ...args: any[]): T;
    }
    export interface ISearchInterfaceSetup<T extends SearchInterface> {
        env: IMockEnvironment;
        cmp: T;
    }
}

declare module 'coveo-search-ui-tests/MockEnvironment/MockComponents' {
    import { BaseComponent, SearchInterface, QueryController, SearchEndpoint, IAnalyticsClient, AnalyticsEndpoint, ValidResponsiveMode } from "coveo-search-ui";
    export type ConstructorFunc<T> = any;
    export interface IResponsiveComponentsMock {
        windoh: Window;
        setSmallScreenWidth(width: number): void;
        setMediumScreenWidth(width: number): void;
        getSmallScreenWidth(): number;
        getMediumScreenWidth(): number;
        isSmallScreenWidth(): boolean;
        isMediumScreenWidth(): boolean;
        isLargeScreenWidth(): boolean;
        setResponsiveMode(responsiveMode: ValidResponsiveMode): void;
        getResponsiveMode(): ValidResponsiveMode;
    }
    export function mock<T>(contructorFunc: ConstructorFunc<T>, name?: string): T;
    export function mockWindow(): Window;
    export function mockComponent<T extends BaseComponent>(constructorFunc: ConstructorFunc<T>, name?: string): T;
    export function mockSearchInterface(): SearchInterface;
    export function mockResponsiveComponents(): IResponsiveComponentsMock;
    export function mockQueryController(): QueryController;
    export function mockSearchEndpoint(): SearchEndpoint;
    export function mockUsageAnalytics(): IAnalyticsClient;
    export function mockAnalyticsEndpoint(): AnalyticsEndpoint;
}

declare module 'coveo-search-ui-tests/MockEnvironment/MockEnvironmentBuilder' {
    import { IComponentBindings, IQueryResult, SearchInterface, QueryStateModel, IAnalyticsClient, ComponentStateModel, ComponentOptionsModel, OS_NAME, SearchEndpoint, QueryController } from "coveo-search-ui";
    export interface IMockEnvironment extends IComponentBindings {
        root: HTMLElement;
        element: HTMLElement;
        result: IQueryResult;
        searchEndpoint: SearchEndpoint;
        searchInterface: SearchInterface;
        queryController: QueryController;
        queryStateModel: QueryStateModel;
        usageAnalytics: IAnalyticsClient;
    }
    export interface IMockEnvironmentWithData<T> extends IMockEnvironment {
        data: T;
    }
    export class MockEnvironmentBuilder {
        root: HTMLElement;
        element: HTMLElement;
        result: IQueryResult;
        searchEndpoint: SearchEndpoint;
        searchInterface: SearchInterface;
        queryController: QueryController;
        queryStateModel: QueryStateModel;
        componentStateModel: ComponentStateModel;
        usageAnalytics: IAnalyticsClient;
        componentOptionsModel: ComponentOptionsModel;
        os: OS_NAME;
        withRoot(root: HTMLElement): this;
        withElement(element: HTMLElement): this;
        withLiveQueryStateModel(): this;
        withQueryStateModel(model: QueryStateModel): this;
        withCollaborativeRating(): this;
        withOs(os: OS_NAME): this;
        withResult(result?: IQueryResult): this;
        withEndpoint(endpoint?: SearchEndpoint): this;
        build(): IMockEnvironment;
        getBindings(): IMockEnvironment;
    }
}

declare module 'coveo-search-ui-tests/MockEnvironment/OptionsComponentsSetup' {
    import { ISearchInterfaceSetup, ISearchInterfaceConstructor, IComponentConstructorWithResult, IComponentConstructorWithResultAndModalBox, IBasicComponentSetupWithModalBox, IBasicComponentSetup, IComponentConstructor, IComponentConstructorWithModalBox } from "coveo-search-ui-tests/MockEnvironment/ComponentsSetup";
    import { SearchInterface, IQueryResult, ISearchInterfaceOptions, Component } from "coveo-search-ui";
    export function optionsSearchInterfaceSetup<T extends SearchInterface, U extends ISearchInterfaceOptions>(klass: ISearchInterfaceConstructor<T>, options: U, ...args: any[]): ISearchInterfaceSetup<T>;
    export function optionsResultComponentSetup<T extends Component, U>(klass: IComponentConstructorWithResult<T>, options: U, result: IQueryResult, ...args: any[]): IBasicComponentSetup<T>;
    export function optionsResultComponentSetupWithModalBox<T extends Component, U>(klass: IComponentConstructorWithResultAndModalBox<T>, options: U, result: IQueryResult, ...args: any[]): IBasicComponentSetupWithModalBox<T>;
    export function optionsComponentSetup<T extends Component, U>(klass: IComponentConstructor<T>, options: U, ...args: any[]): IBasicComponentSetup<T>;
    export function optionsComponentSetupWithModalBox<T extends Component, U>(klass: IComponentConstructorWithModalBox<T>, options: U, ...args: any[]): IBasicComponentSetupWithModalBox<T>;
}

declare module 'coveo-search-ui-tests/Simulate/Actions' {
    export function keyUp(element: HTMLElement, key: number, shiftKey?: boolean): void;
}

declare module 'coveo-search-ui-tests/Simulate/Components' {
    import { IMockEnvironment } from "coveo-search-ui-tests/MockEnvironment";
    import { IOmniboxData, IBreadcrumbItem } from "coveo-search-ui";
    export function omnibox(env: IMockEnvironment, options?: any): IOmniboxData;
    export function breadcrumb(env: IMockEnvironment, options?: any): IBreadcrumbItem[];
}

declare module 'coveo-search-ui-tests/Simulate/Environment' {
    export function isPhantomJs(): boolean;
    export function isChromeHeadless(): boolean;
    export function addJQuery(): any;
    export function removeJQuery(): void;
}

declare module 'coveo-search-ui-tests/Simulate/Modules' {
    import { ModalBox } from "coveo-search-ui";
    export function modalBoxModule(): ModalBox.ModalBox;
    export function analyticsStoreModule(actionsHistory?: CoveoAnalytics.HistoryElement[]): CoveoAnalytics.HistoryStore;
}

declare module 'coveo-search-ui-tests/Simulate/Query' {
    import { IMockEnvironment } from "coveo-search-ui-tests/MockEnvironment";
    import { QueryBuilder, IQuery, IQueryCorrection, IEndpointError, IQueryResults, IGroupByResult, Component } from "coveo-search-ui";
    export interface ISimulateQueryData {
        query?: IQuery;
        queryBuilder?: QueryBuilder;
        searchAsYouType?: boolean;
        promise?: Promise<IQueryResults>;
        error?: IEndpointError;
        results?: IQueryResults;
        queryCorrections?: IQueryCorrection[];
        groupByResults?: IGroupByResult[];
        callbackDuringQuery?(): void;
        callbackAfterNoResults?(): void;
        callbackAfterQuery?(): void;
        doNotFlushDefer?: boolean;
        deferSuccess?: boolean;
        cancel?: boolean;
        origin?: Component;
    }
    export function query(env: IMockEnvironment, options?: ISimulateQueryData): ISimulateQueryData;
}

