import { FeatureToggle, IStrategyConfig, ITag, IVariant } from './model';
import { IApiToken } from './models/api-token';
export declare const APPLICATION_CREATED = "application-created";
export declare const FEATURE_CREATED = "feature-created";
export declare const FEATURE_DELETED = "feature-deleted";
export declare const FEATURE_UPDATED = "feature-updated";
export declare const FEATURE_METADATA_UPDATED = "feature-metadata-updated";
export declare const FEATURE_VARIANTS_UPDATED = "feature-variants-updated";
export declare const FEATURE_ENVIRONMENT_VARIANTS_UPDATED = "feature-environment-variants-updated";
export declare const FEATURE_PROJECT_CHANGE = "feature-project-change";
export declare const FEATURE_ARCHIVED = "feature-archived";
export declare const FEATURE_REVIVED = "feature-revived";
export declare const FEATURE_IMPORT = "feature-import";
export declare const FEATURE_TAGGED = "feature-tagged";
export declare const FEATURE_TAG_IMPORT = "feature-tag-import";
export declare const FEATURE_STRATEGY_UPDATE = "feature-strategy-update";
export declare const FEATURE_STRATEGY_ADD = "feature-strategy-add";
export declare const FEATURE_STRATEGY_REMOVE = "feature-strategy-remove";
export declare const DROP_FEATURE_TAGS = "drop-feature-tags";
export declare const FEATURE_UNTAGGED = "feature-untagged";
export declare const FEATURE_STALE_ON = "feature-stale-on";
export declare const FEATURE_STALE_OFF = "feature-stale-off";
export declare const DROP_FEATURES = "drop-features";
export declare const FEATURE_ENVIRONMENT_ENABLED = "feature-environment-enabled";
export declare const FEATURE_ENVIRONMENT_DISABLED = "feature-environment-disabled";
export declare const STRATEGY_CREATED = "strategy-created";
export declare const STRATEGY_DELETED = "strategy-deleted";
export declare const STRATEGY_DEPRECATED = "strategy-deprecated";
export declare const STRATEGY_REACTIVATED = "strategy-reactivated";
export declare const STRATEGY_UPDATED = "strategy-updated";
export declare const STRATEGY_IMPORT = "strategy-import";
export declare const DROP_STRATEGIES = "drop-strategies";
export declare const CONTEXT_FIELD_CREATED = "context-field-created";
export declare const CONTEXT_FIELD_UPDATED = "context-field-updated";
export declare const CONTEXT_FIELD_DELETED = "context-field-deleted";
export declare const PROJECT_CREATED = "project-created";
export declare const PROJECT_UPDATED = "project-updated";
export declare const PROJECT_DELETED = "project-deleted";
export declare const PROJECT_IMPORT = "project-import";
export declare const PROJECT_USER_ADDED = "project-user-added";
export declare const PROJECT_USER_REMOVED = "project-user-removed";
export declare const PROJECT_USER_ROLE_CHANGED = "project-user-role-changed";
export declare const PROJECT_GROUP_ADDED = "project-group-added";
export declare const PROJECT_GROUP_REMOVED = "project-group-removed";
export declare const PROJECT_GROUP_ROLE_CHANGED = "project-group-role-changed";
export declare const DROP_PROJECTS = "drop-projects";
export declare const TAG_CREATED = "tag-created";
export declare const TAG_DELETED = "tag-deleted";
export declare const TAG_IMPORT = "tag-import";
export declare const DROP_TAGS = "drop-tags";
export declare const TAG_TYPE_CREATED = "tag-type-created";
export declare const TAG_TYPE_DELETED = "tag-type-deleted";
export declare const TAG_TYPE_UPDATED = "tag-type-updated";
export declare const TAG_TYPE_IMPORT = "tag-type-import";
export declare const DROP_TAG_TYPES = "drop-tag-types";
export declare const ADDON_CONFIG_CREATED = "addon-config-created";
export declare const ADDON_CONFIG_UPDATED = "addon-config-updated";
export declare const ADDON_CONFIG_DELETED = "addon-config-deleted";
export declare const DB_POOL_UPDATE = "db-pool-update";
export declare const USER_CREATED = "user-created";
export declare const USER_UPDATED = "user-updated";
export declare const USER_DELETED = "user-deleted";
export declare const DROP_ENVIRONMENTS = "drop-environments";
export declare const ENVIRONMENT_IMPORT = "environment-import";
export declare const SEGMENT_CREATED = "segment-created";
export declare const SEGMENT_UPDATED = "segment-updated";
export declare const SEGMENT_DELETED = "segment-deleted";
export declare const GROUP_CREATED = "group-created";
export declare const GROUP_UPDATED = "group-updated";
export declare const SETTING_CREATED = "setting-created";
export declare const SETTING_UPDATED = "setting-updated";
export declare const SETTING_DELETED = "setting-deleted";
export declare const CLIENT_METRICS = "client-metrics";
export declare const CLIENT_REGISTER = "client-register";
export declare const PAT_CREATED = "pat-created";
export declare const PUBLIC_SIGNUP_TOKEN_CREATED = "public-signup-token-created";
export declare const PUBLIC_SIGNUP_TOKEN_USER_ADDED = "public-signup-token-user-added";
export declare const PUBLIC_SIGNUP_TOKEN_TOKEN_UPDATED = "public-signup-token-updated";
export declare const CHANGE_REQUEST_CREATED = "change-request-created";
export declare const CHANGE_REQUEST_DISCARDED = "change-request-discarded";
export declare const CHANGE_ADDED = "change-added";
export declare const CHANGE_DISCARDED = "change-discarded";
export declare const CHANGE_REQUEST_APPROVED = "change-request-approved";
export declare const CHANGE_REQUEST_APPROVAL_ADDED = "change-request-approval-added";
export declare const CHANGE_REQUEST_CANCELLED = "change-request-cancelled";
export declare const CHANGE_REQUEST_SENT_TO_REVIEW = "change-request-sent-to-review";
export declare const CHANGE_REQUEST_APPLIED = "change-request-applied";
export declare const API_TOKEN_CREATED = "api-token-created";
export declare const API_TOKEN_UPDATED = "api-token-updated";
export declare const API_TOKEN_DELETED = "api-token-deleted";
export declare const FEATURE_FAVORITED = "feature-favorited";
export declare const FEATURE_UNFAVORITED = "feature-unfavorited";
export declare const PROJECT_FAVORITED = "project-favorited";
export declare const PROJECT_UNFAVORITED = "project-unfavorited";
export interface IBaseEvent {
    type: string;
    createdBy: string;
    project?: string;
    environment?: string;
    featureName?: string;
    data?: any;
    preData?: any;
    tags?: ITag[];
}
export interface IEvent extends IBaseEvent {
    id: number;
    createdAt: Date;
}
export interface IEventList {
    totalEvents: number;
    events: IEvent[];
}
declare class BaseEvent implements IBaseEvent {
    readonly type: string;
    readonly createdBy: string;
    readonly tags: ITag[];
    constructor(type: string, createdBy: string, tags?: ITag[]);
}
export declare class FeatureStaleEvent extends BaseEvent {
    readonly project: string;
    readonly featureName: string;
    constructor(p: {
        stale: boolean;
        project: string;
        featureName: string;
        createdBy: string;
        tags: ITag[];
    });
}
export declare class FeatureEnvironmentEvent extends BaseEvent {
    readonly project: string;
    readonly featureName: string;
    readonly environment: string;
    constructor(p: {
        enabled: boolean;
        project: string;
        featureName: string;
        environment: string;
        createdBy: string;
        tags: ITag[];
    });
}
export declare class FeatureVariantEvent extends BaseEvent {
    readonly project: string;
    readonly featureName: string;
    readonly data: {
        variants: IVariant[];
    };
    readonly preData: {
        variants: IVariant[];
    };
    constructor(p: {
        project: string;
        featureName: string;
        createdBy: string;
        tags: ITag[];
        newVariants: IVariant[];
        oldVariants: IVariant[];
    });
}
export declare class EnvironmentVariantEvent extends BaseEvent {
    readonly project: string;
    readonly environment: string;
    readonly featureName: string;
    readonly data: {
        variants: IVariant[];
    };
    readonly preData: {
        variants: IVariant[];
    };
    constructor(p: {
        featureName: string;
        environment: string;
        project: string;
        createdBy: string;
        newVariants: IVariant[];
        oldVariants: IVariant[];
    });
}
export declare class FeatureChangeProjectEvent extends BaseEvent {
    readonly project: string;
    readonly featureName: string;
    readonly data: {
        oldProject: string;
        newProject: string;
    };
    constructor(p: {
        oldProject: string;
        newProject: string;
        featureName: string;
        createdBy: string;
        tags: ITag[];
    });
}
export declare class FeatureCreatedEvent extends BaseEvent {
    readonly project: string;
    readonly featureName: string;
    readonly data: FeatureToggle;
    constructor(p: {
        project: string;
        featureName: string;
        createdBy: string;
        data: FeatureToggle;
        tags: ITag[];
    });
}
export declare class FeatureArchivedEvent extends BaseEvent {
    readonly project: string;
    readonly featureName: string;
    constructor(p: {
        project: string;
        featureName: string;
        createdBy: string;
        tags: ITag[];
    });
}
export declare class FeatureRevivedEvent extends BaseEvent {
    readonly project: string;
    readonly featureName: string;
    constructor(p: {
        project: string;
        featureName: string;
        createdBy: string;
        tags: ITag[];
    });
}
export declare class FeatureDeletedEvent extends BaseEvent {
    readonly project: string;
    readonly featureName: string;
    readonly preData: FeatureToggle;
    constructor(p: {
        project: string;
        featureName: string;
        preData: FeatureToggle;
        createdBy: string;
        tags: ITag[];
    });
}
export declare class FeatureMetadataUpdateEvent extends BaseEvent {
    readonly project: string;
    readonly featureName: string;
    readonly data: FeatureToggle;
    readonly preData: FeatureToggle;
    constructor(p: {
        featureName: string;
        createdBy: string;
        project: string;
        data: FeatureToggle;
        preData: FeatureToggle;
        tags: ITag[];
    });
}
export declare class FeatureStrategyAddEvent extends BaseEvent {
    readonly project: string;
    readonly featureName: string;
    readonly environment: string;
    readonly data: IStrategyConfig;
    constructor(p: {
        project: string;
        featureName: string;
        environment: string;
        createdBy: string;
        data: IStrategyConfig;
        tags: ITag[];
    });
}
export declare class FeatureStrategyUpdateEvent extends BaseEvent {
    readonly project: string;
    readonly featureName: string;
    readonly environment: string;
    readonly data: IStrategyConfig;
    readonly preData: IStrategyConfig;
    constructor(p: {
        project: string;
        featureName: string;
        environment: string;
        createdBy: string;
        data: IStrategyConfig;
        preData: IStrategyConfig;
        tags: ITag[];
    });
}
export declare class FeatureStrategyRemoveEvent extends BaseEvent {
    readonly project: string;
    readonly featureName: string;
    readonly environment: string;
    readonly preData: IStrategyConfig;
    constructor(p: {
        project: string;
        featureName: string;
        environment: string;
        createdBy: string;
        preData: IStrategyConfig;
        tags: ITag[];
    });
}
export declare class ProjectUserAddedEvent extends BaseEvent {
    readonly project: string;
    readonly data: any;
    readonly preData: any;
    constructor(p: {
        project: string;
        createdBy: string;
        data: any;
    });
}
export declare class ProjectUserRemovedEvent extends BaseEvent {
    readonly project: string;
    readonly data: any;
    readonly preData: any;
    constructor(p: {
        project: string;
        createdBy: string;
        preData: any;
    });
}
export declare class ProjectUserUpdateRoleEvent extends BaseEvent {
    readonly project: string;
    readonly data: any;
    readonly preData: any;
    constructor(eventData: {
        project: string;
        createdBy: string;
        data: any;
        preData: any;
    });
}
export declare class ProjectGroupAddedEvent extends BaseEvent {
    readonly project: string;
    readonly data: any;
    readonly preData: any;
    constructor(p: {
        project: string;
        createdBy: string;
        data: any;
    });
}
export declare class ProjectGroupRemovedEvent extends BaseEvent {
    readonly project: string;
    readonly data: any;
    readonly preData: any;
    constructor(p: {
        project: string;
        createdBy: string;
        preData: any;
    });
}
export declare class ProjectGroupUpdateRoleEvent extends BaseEvent {
    readonly project: string;
    readonly data: any;
    readonly preData: any;
    constructor(eventData: {
        project: string;
        createdBy: string;
        data: any;
        preData: any;
    });
}
export declare class SettingCreatedEvent extends BaseEvent {
    readonly data: any;
    constructor(eventData: {
        createdBy: string;
        data: any;
    });
}
export declare class SettingDeletedEvent extends BaseEvent {
    readonly data: any;
    constructor(eventData: {
        createdBy: string;
        data: any;
    });
}
export declare class SettingUpdatedEvent extends BaseEvent {
    readonly data: any;
    constructor(eventData: {
        createdBy: string;
        data: any;
    });
}
export declare class PublicSignupTokenCreatedEvent extends BaseEvent {
    readonly data: any;
    constructor(eventData: {
        createdBy: string;
        data: any;
    });
}
export declare class PublicSignupTokenUpdatedEvent extends BaseEvent {
    readonly data: any;
    constructor(eventData: {
        createdBy: string;
        data: any;
    });
}
export declare class PublicSignupTokenUserAddedEvent extends BaseEvent {
    readonly data: any;
    constructor(eventData: {
        createdBy: string;
        data: any;
    });
}
export declare class ApiTokenCreatedEvent extends BaseEvent {
    readonly data: any;
    readonly environment: string;
    readonly project: string;
    constructor(eventData: {
        createdBy: string;
        apiToken: Omit<IApiToken, 'secret'>;
    });
}
export declare class ApiTokenDeletedEvent extends BaseEvent {
    readonly preData: any;
    readonly environment: string;
    readonly project: string;
    constructor(eventData: {
        createdBy: string;
        apiToken: Omit<IApiToken, 'secret'>;
    });
}
export declare class ApiTokenUpdatedEvent extends BaseEvent {
    readonly preData: any;
    readonly data: any;
    readonly environment: string;
    readonly project: string;
    constructor(eventData: {
        createdBy: string;
        previousToken: Omit<IApiToken, 'secret'>;
        apiToken: Omit<IApiToken, 'secret'>;
    });
}
export {};
