import { DisplayMode, Element, SchemaVariable, Segment, Style, StyleItem, TagType, DropPosition, StyleVariableCategory, StyleVariableValue, StyleCategory, StyleState } from '@plitzi/sdk-shared';
export declare const SegmentsActions: {
    readonly SEGMENTS_ADD: "SEGMENTS_ADD";
    readonly SEGMENTS_UPDATE: "SEGMENTS_UPDATE";
    readonly SEGMENTS_REMOVE: "SEGMENTS_REMOVE";
    readonly SEGMENTS_ADD_TEMPLATE: "SEGMENTS_ADD_TEMPLATE";
    readonly SEGMENTS_ADD_ELEMENT: "SEGMENTS_ADD_ELEMENT";
    readonly SEGMENTS_REMOVE_ELEMENT: "SEGMENTS_REMOVE_ELEMENT";
    readonly SEGMENTS_MOVE_ELEMENT: "SEGMENTS_MOVE_ELEMENT";
    readonly SEGMENTS_CLONE_ELEMENT: "SEGMENTS_CLONE_ELEMENT";
    readonly SEGMENTS_UPDATE_ELEMENT: "SEGMENTS_UPDATE_ELEMENT";
    readonly SEGMENTS_SPACE_ADD_VARIABLE: "SEGMENTS_SPACE_ADD_VARIABLE";
    readonly SEGMENTS_SPACE_UPDATE_VARIABLE: "SEGMENTS_SPACE_UPDATE_VARIABLE";
    readonly SEGMENTS_SPACE_REMOVE_VARIABLE: "SEGMENTS_SPACE_REMOVE_VARIABLE";
    readonly SEGMENTS_STYLE_ADD_SELECTOR: "SEGMENTS_STYLE_ADD_SELECTOR";
    readonly SEGMENTS_STYLE_UPDATE_SELECTOR: "SEGMENTS_STYLE_UPDATE_SELECTOR";
    readonly SEGMENTS_STYLE_REMOVE_SELECTOR: "SEGMENTS_STYLE_REMOVE_SELECTOR";
    readonly SEGMENTS_STYLE_ADD_SELECTOR_VARIABLE: "SEGMENTS_STYLE_ADD_SELECTOR_VARIABLE";
    readonly SEGMENTS_STYLE_UPDATE_SELECTOR_VARIABLE: "SEGMENTS_STYLE_UPDATE_SELECTOR_VARIABLE";
    readonly SEGMENTS_STYLE_REMOVE_SELECTOR_VARIABLE: "SEGMENTS_STYLE_REMOVE_SELECTOR_VARIABLE";
    readonly SEGMENTS_STYLE_ADD_VARIABLE: "SEGMENTS_STYLE_ADD_VARIABLE";
    readonly SEGMENTS_STYLE_UPDATE_VARIABLE: "SEGMENTS_STYLE_UPDATE_VARIABLE";
    readonly SEGMENTS_STYLE_REMOVE_VARIABLE: "SEGMENTS_STYLE_REMOVE_VARIABLE";
};
type SegmentsReducerActionsBase = {
    segmentId: string;
    segment?: Segment;
    fromSubscriptions?: boolean;
};
export type SegmentsReducerActions = ({
    type: 'SEGMENTS_ADD';
} & SegmentsReducerActionsBase) | ({
    type: 'SEGMENTS_UPDATE';
} & SegmentsReducerActionsBase) | ({
    type: 'SEGMENTS_REMOVE';
} & SegmentsReducerActionsBase) | ({
    type: 'SEGMENTS_ADD_ELEMENT';
    to: Element['id'];
    data: Element;
    dropPosition: DropPosition;
    initialItems: Record<string, Element>;
    variables: SchemaVariable[];
} & SegmentsReducerActionsBase) | ({
    type: 'SEGMENTS_REMOVE_ELEMENT';
    elementId: string;
} & SegmentsReducerActionsBase) | ({
    type: 'SEGMENTS_CLONE_ELEMENT';
    to: string;
    data: Element;
    dropPosition: DropPosition;
    initialItems: Record<string, Element>;
} & SegmentsReducerActionsBase) | ({
    type: 'SEGMENTS_MOVE_ELEMENT';
    from: string;
    to: string;
    elementId: string;
    dropPosition: DropPosition;
} & SegmentsReducerActionsBase) | ({
    type: 'SEGMENTS_UPDATE_ELEMENT';
    element: Element;
} & SegmentsReducerActionsBase) | ({
    type: 'SEGMENTS_SPACE_ADD_VARIABLE' | 'SEGMENTS_SPACE_UPDATE_VARIABLE';
    variable: SchemaVariable;
} & SegmentsReducerActionsBase) | ({
    type: 'SEGMENTS_SPACE_REMOVE_VARIABLE';
    name: string;
} & SegmentsReducerActionsBase) | ({
    type: 'SEGMENTS_STYLE_ADD_SELECTOR';
    displayMode: DisplayMode;
    selector: string;
    selectorType: TagType;
    path?: StyleCategory;
    value?: StyleItem['attributes'];
    params: {
        componentType?: string;
        styleSelector?: string;
        styleState?: StyleState;
        styleVariant?: string;
    };
} & SegmentsReducerActionsBase) | ({
    type: 'SEGMENTS_STYLE_UPDATE_SELECTOR';
    displayMode: DisplayMode;
    selector: string;
    path?: StyleCategory;
    value?: StyleItem['attributes'];
    params: {
        componentType?: string;
        styleSelector: string;
        styleState?: StyleState;
        styleVariant?: string;
    };
} & SegmentsReducerActionsBase) | ({
    type: 'SEGMENTS_STYLE_REMOVE_SELECTOR';
    displayMode: DisplayMode;
    selector: string;
} & SegmentsReducerActionsBase) | ({
    type: 'SEGMENTS_STYLE_ADD_SELECTOR_VARIABLE' | 'SEGMENTS_STYLE_UPDATE_SELECTOR_VARIABLE';
    displayMode: DisplayMode;
    selector: string;
    category: StyleVariableCategory;
    name: string;
    value: StyleVariableValue;
} & SegmentsReducerActionsBase) | ({
    type: 'SEGMENTS_STYLE_REMOVE_SELECTOR_VARIABLE';
    displayMode: DisplayMode;
    selector: string;
    category: StyleVariableCategory;
    name: string;
} & SegmentsReducerActionsBase) | ({
    type: 'SEGMENTS_STYLE_ADD_VARIABLE' | 'SEGMENTS_STYLE_UPDATE_VARIABLE';
    category: StyleVariableCategory;
    name: string;
    value: StyleVariableValue;
} & SegmentsReducerActionsBase) | ({
    type: 'SEGMENTS_STYLE_REMOVE_VARIABLE';
    category: StyleVariableCategory;
    name: string;
} & SegmentsReducerActionsBase) | ({
    type: 'SEGMENTS_ADD_TEMPLATE';
    to: string;
    data: Element;
    dropPosition: DropPosition;
    initialItems: Record<string, Element>;
    templatePlatform: Style['platform'];
    variables: SchemaVariable[];
} & SegmentsReducerActionsBase);
declare const SegmentsReducer: (state: Record<string, Segment>, action: SegmentsReducerActions) => Omit<Record<string, Segment>, string>;
export default SegmentsReducer;
