/**
 * Copyright (c) 2019 Paul Armstrong
 */
import Build from '@build-tracker/build';
import ColorScale from '../modules/ColorScale';
import Comparator from '@build-tracker/comparator';
import { AppConfig, Budget } from '@build-tracker/types';
export declare enum FetchState {
    NONE = 0,
    FETCHING = 1,
    FETCHED = 2,
    ERROR = 3
}
export declare enum GraphType {
    AREA = "AREA",
    STACKED_BAR = "STACKED_BAR"
}
export interface State {
    activeArtifacts: {
        [key: string]: boolean;
    };
    activeComparator: Comparator;
    artifactConfig: AppConfig['artifacts'];
    budgets: Array<Budget>;
    builds: Array<Build>;
    colorScale: keyof typeof ColorScale;
    comparator: Comparator;
    comparedRevisions: Array<string>;
    disabledArtifactsVisible: boolean;
    fetchState: FetchState;
    focusedRevision?: string;
    graphType: GraphType;
    hideAttribution: boolean;
    hoveredArtifacts: Array<string>;
    name: string;
    snacks: Array<string>;
    defaultSizeKey?: string;
    sizeKey: string;
    url: string;
}
interface Action<T, P, M = undefined> {
    type: T;
    payload: P;
    meta?: M;
}
export declare type SetArtifactsActiveAction = Action<'ARTIFACT_SET_ACTIVE', boolean, Array<string>>;
export declare type SetBuildsAction = Action<'BUILDS_SET', Array<Build>>;
export declare type SetColorScaleAction = Action<'COLOR_SCALE_SET', keyof typeof ColorScale>;
export declare type AddComparedRevision = Action<'COMPARED_REVISION_ADD', string>;
export declare type RemoveComparedRevision = Action<'COMPARED_REVISION_REMOVE', string>;
export declare type ClearComparedRevision = Action<'COMPARED_REVISION_CLEAR', void>;
export declare type SetDisabledArtifactsVisible = Action<'SET_DISABLED_ARTIFACTS', boolean>;
export declare type SetFocusedRevision = Action<'SET_FOCUSED_REVISION', string | void>;
export declare type SetSizeKey = Action<'SET_SIZE_KEY', string>;
export declare type AddSnack = Action<'ADD_SNACK', string>;
export declare type RemoveSnack = Action<'REMOVE_SNACK', string>;
export declare type SetHoveredArtifacts = Action<'HOVER_ARTIFACTS', Array<string>>;
export declare type SetFetchState = Action<'SET_FETCH_STATE', FetchState>;
export declare type SetGraphType = Action<'SET_GRAPH_TYPE', GraphType>;
export declare type Actions = SetArtifactsActiveAction | SetBuildsAction | SetColorScaleAction | AddComparedRevision | RemoveComparedRevision | ClearComparedRevision | SetDisabledArtifactsVisible | SetFocusedRevision | SetSizeKey | AddSnack | RemoveSnack | SetHoveredArtifacts | SetFetchState | SetGraphType;
export {};
//# sourceMappingURL=types.d.ts.map