/// <reference types="react" />
import { SegmentTriggerType, SegmentType, SignalTriggerType } from '@parlor/common/amplify-schema';
import { OptionsSelectItem } from '@parlor/ui/select';
import { Colors } from '@parlor/ui/theme';
import { IConfigButton } from './filter-buttons/interfaces';
export declare const STICKY_EVENT_LABEL: {
    id: string;
    key: string;
    name: string;
};
export declare const getJourneyItem: (item: OptionsSelectItem) => any;
export declare const DEFAULT_PROPERTY_VALUE: {
    id: string;
    name: string;
};
export type Variations = 'segment' | 'signal' | 'filter' | 'event' | 'account-import' | 'user-import' | 'account-filter' | 'user-filter' | 'share' | 'trigger' | 'condition-group' | 'condition-group-data-selector' | 'condition-group-property-selector';
export declare const FilterFor: {
    AccountCvusForSignals: SignalTriggerType.AccountCvusForSignals;
    AllUsersInAccountInSegment: SignalTriggerType.AllUsersInAccountInSegment;
    AnyAccount: SignalTriggerType.AnyAccount;
    AnyUser: SignalTriggerType.AnyUser;
    AnyUserInAccountInSegment: SignalTriggerType.AnyUserInAccountInSegment;
    AccountCvus: SegmentTriggerType.AccountCvus;
    AccountWithOpportunities: SegmentTriggerType.AccountWithOpportunities;
    Accounts: SegmentTriggerType.Accounts;
    AccountsWithAllUsers: SegmentTriggerType.AccountsWithAllUsers;
    AccountsWithAnyUser: SegmentTriggerType.AccountsWithAnyUser;
    AccountsWithCalls: SegmentTriggerType.AccountsWithCalls;
    AccountsWithCustomObject: SegmentTriggerType.AccountsWithCustomObject;
    AccountsWithJourney: SegmentTriggerType.AccountsWithJourney;
    AccountsWithMeetings: SegmentTriggerType.AccountsWithMeetings;
    AccountsWithMilestones: SegmentTriggerType.AccountsWithMilestones;
    AccountsWithNeeds: SegmentTriggerType.AccountsWithNeeds;
    AccountsWithPostInteractions: SegmentTriggerType.AccountsWithPostInteractions;
    AccountsWithSurveyResponses: SegmentTriggerType.AccountsWithSurveyResponses;
    AccountsWithTickets: SegmentTriggerType.AccountsWithTickets;
    AccountsWithTopics: SegmentTriggerType.AccountsWithTopics;
    Users: SegmentTriggerType.Users;
    UsersWithAccount: SegmentTriggerType.UsersWithAccount;
    UsersWithCustomObjects: SegmentTriggerType.UsersWithCustomObjects;
    UsersWithJourneys: SegmentTriggerType.UsersWithJourneys;
    UsersWithMilestones: SegmentTriggerType.UsersWithMilestones;
    UsersWithNeeds: SegmentTriggerType.UsersWithNeeds;
    UsersWithPostInteractions: SegmentTriggerType.UsersWithPostInteractions;
    UsersWithSurveyResponses: SegmentTriggerType.UsersWithSurveyResponses;
    UsersWithTickets: SegmentTriggerType.UsersWithTickets;
    UsersWithTopics: SegmentTriggerType.UsersWithTopics;
};
export type FilterFor = SegmentTriggerType | SignalTriggerType;
export declare function pluralize(type: string): string;
export declare const baseEventQuery: {
    id: string;
    filterFor: SegmentTriggerType;
    data: {
        id: string;
        isChild: boolean;
        value: {
            id: string;
            text: string;
            values: {};
        };
    }[];
}[][];
export type ICustomObject = {
    id: string;
    name: string;
};
export declare const IconSwitch: (text: string, variant: Variations) => JSX.Element;
export declare const propertySelector: (text: string) => "eventSelector" | "segmentOrSignalSelector" | "queryBuilderSelector";
export declare const labelText: (variant: Variations, filterFor: FilterFor | null, segmentType: SegmentType | 'mixed', handleFilterForChange: (filterFor: FilterFor, idx: string, customObject?: ICustomObject) => void, id: string, isDefinition: boolean, isTooltip: boolean, customObject?: ICustomObject) => JSX.Element | "Share when a user triggers this condition..." | "Only show Users who meet these conditions..." | "Import Accounts who meet these conditions..." | "Import Users who meet these conditions...";
export declare const segmentFilterType: (filterFor: FilterFor) => SegmentType.Account | SegmentType.User;
export declare const menuListItems: (variant: Variations, filterFor?: FilterFor | null) => {
    id: string;
    text: string;
    values: {};
}[];
export declare const valuesData: (type: string, variant?: Variations) => {
    primaryOperator: {
        id: string;
        text: string;
    };
    primaryValue: string;
    secondaryOperator?: undefined;
    secondaryValue?: undefined;
    property?: undefined;
    eventType?: undefined;
    comparedToOption?: undefined;
} | {
    primaryOperator: {
        id: string;
        text: string;
    };
    primaryValue: any[];
    secondaryOperator?: undefined;
    secondaryValue?: undefined;
    property?: undefined;
    eventType?: undefined;
    comparedToOption?: undefined;
} | {
    eventType: {
        id: string;
        text: string;
    };
    secondaryOperator: {
        id: string;
        text: string;
    };
    secondaryValue: string;
    property: {
        id: string;
        name: string;
    };
    primaryOperator: {
        id: string;
        text: string;
    };
    primaryValue: any[];
    comparedToOption?: undefined;
} | {
    primaryOperator: {
        id: string;
        text: string;
    };
    primaryValue: any[];
    secondaryOperator: {
        id: string;
        text: string;
    };
    secondaryValue: string;
    property?: undefined;
    eventType?: undefined;
    comparedToOption?: undefined;
} | {
    property: {
        id: string;
        name: string;
    };
    primaryOperator: {
        id: string;
        text: string;
    };
    primaryValue: string;
    secondaryOperator?: undefined;
    secondaryValue?: undefined;
    eventType?: undefined;
    comparedToOption?: undefined;
} | {
    primaryOperator: {
        id: string;
        text: string;
    };
    primaryValue: {
        id: string;
        name: string;
    };
    secondaryValue: string;
    secondaryOperator: {
        id: string;
        text: string;
    };
    eventType: {
        id: string;
        text: string;
    };
    comparedToOption: {
        id: string;
        text: string;
    };
    property?: undefined;
};
export declare function randomId(): string;
export declare const booleanOptions: {
    id: string;
    text: string;
}[];
export declare const segmentOptions: {
    id: string;
    text: string;
}[];
export declare const signalOperatorOptions: {
    id: string;
    text: string;
}[];
export declare const emptySearchBlock: JSX.Element;
export declare const cvuOptions: {
    id: string;
    text: string;
}[];
export declare const textOptions: {
    id: string;
    text: string;
}[];
export declare const numberOptions: {
    id: string;
    text: string;
}[];
export declare const dateOptions: {
    id: string;
    text: string;
}[];
export declare const cvuDateOptions: {
    id: string;
    text: string;
}[];
export declare const cvuNumberOptions: {
    id: string;
    text: string;
}[];
export declare const propertyEventOptions: {
    id: string;
    text: string;
}[];
export declare const eventOptions: {
    id: string;
    text: string;
}[];
export declare const userPropertiesFromModel: string[];
export declare const accountPropertiesFromModel: string[];
export declare const underscoreToCamelCase: (value: string) => string;
export declare const timeframeOptions: {
    id: string;
    text: string;
}[];
export declare const prevOrNextOptions: {
    id: string;
    text: string;
}[];
export type timeframeOptions = typeof timeframeOptions;
export declare const numberSignalOptions: {
    id: string;
    text: string;
}[];
export declare const signalTimeConstraintOptions: {
    id: string;
    text: string;
}[];
declare const getDataItemMatchingDefault: ({ id, text }: {
    id: string;
    text: string;
}) => {
    id: string;
    isChild: boolean;
    isDefault: boolean;
    value: {
        id: string;
        text: string;
        values: {};
    };
};
export declare const getMatchingData: (item: Partial<IConfigButton>) => {
    data: ReturnType<typeof getDataItemMatchingDefault>;
    type: string;
} | undefined;
export declare const colorStatusMap: {
    OpenOpportunity: Colors;
    ClosedWon: Colors;
    ClosedLost: Colors;
};
export declare const getDataItemForGroupedConditions: (filterFor: FilterFor) => {
    id: string;
    isChild: boolean;
    value: {
        values: {
            primaryOperator: {
                id: string;
                text: string;
            };
            primaryValue: string;
            secondaryOperator?: undefined;
            secondaryValue?: undefined;
            property?: undefined;
            eventType?: undefined;
            comparedToOption?: undefined;
        } | {
            primaryOperator: {
                id: string;
                text: string;
            };
            primaryValue: any[];
            secondaryOperator?: undefined;
            secondaryValue?: undefined;
            property?: undefined;
            eventType?: undefined;
            comparedToOption?: undefined;
        } | {
            eventType: {
                id: string;
                text: string;
            };
            secondaryOperator: {
                id: string;
                text: string;
            };
            secondaryValue: string;
            property: {
                id: string;
                name: string;
            };
            primaryOperator: {
                id: string;
                text: string;
            };
            primaryValue: any[];
            comparedToOption?: undefined;
        } | {
            primaryOperator: {
                id: string;
                text: string;
            };
            primaryValue: any[];
            secondaryOperator: {
                id: string;
                text: string;
            };
            secondaryValue: string;
            property?: undefined;
            eventType?: undefined;
            comparedToOption?: undefined;
        } | {
            property: {
                id: string;
                name: string;
            };
            primaryOperator: {
                id: string;
                text: string;
            };
            primaryValue: string;
            secondaryOperator?: undefined;
            secondaryValue?: undefined;
            eventType?: undefined;
            comparedToOption?: undefined;
        } | {
            primaryOperator: {
                id: string;
                text: string;
            };
            primaryValue: {
                id: string;
                name: string;
            };
            secondaryValue: string;
            secondaryOperator: {
                id: string;
                text: string;
            };
            eventType: {
                id: string;
                text: string;
            };
            comparedToOption: {
                id: string;
                text: string;
            };
            property?: undefined;
        };
        id: string;
        text: string;
    };
};
export {};
