import { VisualizationObject, AFM } from "@gooddata/typings";
export declare type SortDirection = "asc" | "desc";
export interface IAccountInfo {
    login: string;
    loginMD5: string;
    firstName: string;
    lastName: string;
    organizationName: string;
    profileUri: string;
}
export interface IIdentifierUriPair {
    identifier: string;
    uri: string;
}
export interface IElement {
    element: {
        uri: string;
        title: string;
    };
}
export interface IValidElementsResponse {
    validElements: {
        items: IElement[];
        paging: {
            count: number;
            offset: string;
            total: string;
        };
        elementsMeta: {
            attribute: string;
            attributeDisplayForm: string;
            filter: string;
            order: SortDirection;
        };
        totalCountWithoutFilters?: string;
    };
}
export interface IGetObjectsByQueryOptions {
    category?: string;
    mode?: string;
    author?: string;
    limit?: number;
    deprecated?: boolean;
}
export interface IGetObjectUsingOptions {
    types?: string[];
    nearest?: boolean;
}
export interface IEtlPullResponse {
    pull2Task: {
        links: {
            poll: string;
        };
    };
}
export interface IBaseLoadOptions {
    bucketItems?: VisualizationObject.IVisualizationObjectContent;
    excludeObjectsWithTags?: string[];
    includeObjectsWithTags?: string[];
}
export interface ILoadCatalogOptions extends IBaseLoadOptions {
    filter?: string;
    paging?: {
        limit: number;
        offset: number;
    };
    types?: string[];
}
export interface ILoadDateDataSetOptions extends IBaseLoadOptions {
    dataSetIdentifier?: string;
    includeAvailableDateAttributes?: boolean;
    includeUnavailableDateDataSetsCount?: boolean;
    returnAllDateDataSets?: boolean;
    returnAllRelatedDateDataSets?: boolean;
}
export interface ISort {
    column: string;
    direction: string;
}
export interface IMetricDefinition {
    expression: string;
    format?: string;
    identifier: string;
    title?: string;
    [key: string]: string | undefined;
}
export interface IDefinition {
    metricDefinition: IMetricDefinition;
}
export interface IExecutionConfiguration {
    definitions?: IDefinition[];
    filters?: any[];
    orderBy?: ISort[];
    where?: {
        [key: string]: any;
    };
}
export interface IAttributeHeader {
    id: string;
    title: string;
    type: "attrLabel";
    uri: string;
}
export interface IMetricHeader {
    format?: string;
    id: string;
    title: string;
    type: "metric";
    uri?: string;
}
export declare type Header = IAttributeHeader | IMetricHeader;
export declare type WarningParameterType = boolean | number | string | null;
export interface ISimpleExecutorWarning {
    errorCode: string;
    message: string;
    parameters: WarningParameterType[];
}
export declare type MetricValue = string;
export interface IAttributeValue {
    id: string;
    name: string;
}
export declare type ResultDataType = MetricValue | IAttributeValue;
export interface ISimpleExecutorResult {
    headers?: Header[];
    isEmpty?: boolean;
    isLoaded?: boolean;
    rawData?: ResultDataType[][];
    warnings?: ISimpleExecutorWarning[];
}
export declare type EmbeddedFilter = IEmbeddedDateFilter | IEmbeddedListAttributeFilter;
export declare type EmbeddedDateFilterType = "relative" | "absolute";
export interface IEmbeddedDateFilter {
    dateFilter: {
        attribute?: string;
        dataset?: string;
        dimension?: string;
        from?: string | number;
        granularity: string;
        to?: string | number;
        type: EmbeddedDateFilterType;
    };
}
export interface IEmbeddedListAttributeFilter {
    listAttributeFilter: {
        attribute: string;
        displayForm: string;
        default: {
            attributeElements: string[];
            negativeSelection: boolean;
        };
    };
}
export interface IMeasureSort {
    direction: SortDirection;
    sortByPoP?: boolean;
}
export declare type VisualizationStyleType = "common" | "table" | "line" | "column" | "bar";
export interface IVisualizationStyle {
    visualizationStyle: {
        type: VisualizationStyleType;
        colorPalette: {
            measure?: {
                color: string;
                periodOverPeriod: string;
            };
            stack?: any;
        };
    };
}
export declare type MeasureType = "metric" | "fact" | "attribute";
export declare type MeasureAggregation = "sum" | "count" | "avg" | "min" | "max" | "median" | "runsum";
export interface IMeasure {
    measure: {
        aggregation?: MeasureAggregation;
        format?: string;
        generatedId?: string;
        measureFilters: EmbeddedFilter[];
        objectUri: string;
        showInPercent: boolean;
        showPoP: boolean;
        sort?: IMeasureSort;
        styles?: IVisualizationStyle[];
        title: string;
        type: MeasureType;
    };
}
export interface IColor {
    r: number;
    g: number;
    b: number;
}
export declare type IColorPalette = IColorPaletteItem[];
export interface IColorPaletteItem {
    guid: string;
    fill: IColor;
}
export interface ICreateProjectOptions {
    summary?: string;
    projectTemplate?: string;
    driver?: string;
    environment?: string;
    guidedNavigation?: number;
}
export interface ITimezone {
    id: string;
    displayName: string;
    currentOffsetMs: number;
}
export interface IXhrMockInBeforeSend {
    setRequestHeader(key: string, value: string): void;
}
export interface IXhrSettings {
    method?: "GET" | "POST" | "PUT" | "DELETE" | "HEAD";
    body?: any;
    beforeSend?(xhr: IXhrMockInBeforeSend, url: string): void;
    [key: string]: any;
}
export interface ISdkOptions {
    domain?: string;
}
export interface IFeatureFlags {
    [key: string]: number | boolean | string;
}
export interface IBaseExportConfig {
    title?: string;
    format?: "xlsx" | "csv" | "raw";
    mergeHeaders?: boolean;
}
export interface IExportConfig extends IBaseExportConfig {
    showFilters?: boolean;
    afm?: AFM.IAfm;
}
export interface IExportResponse {
    uri: string;
}
export declare type GuidType = "guid";
export declare type RGBType = "rgb";
export interface IGuidColorItem {
    type: GuidType;
    value: string;
}
export interface IRGBColorItem {
    type: RGBType;
    value: IColor;
}
export declare type IColorItem = IGuidColorItem | IRGBColorItem;
export interface IColorMappingProperty {
    id: string;
    color: IColorItem;
}
export interface IPropertiesControls {
    colorMapping?: IColorMappingProperty[];
}
export interface IProperties {
    controls?: IPropertiesControls;
    sortItems?: AFM.SortItem[];
}
export interface IStoredItemDescription {
    uri: string;
}
export interface IAdHocItemDescription {
    expression: string;
}
export declare type ItemDescription = IStoredItemDescription | IAdHocItemDescription;
