import { EntityDeleteOptions, EntitySaveOptions } from '@memberjunction/core';
import { MJEntityPermissionEntity } from '@memberjunction/core-entities';
/**
 * Server-side only class that extends the entity permissions object to watch for changes to entity permissions, build a queue of entities that have been changed, and then from time to time, submit
 * them to an API server that will execute the underlying permission changes at the database level.
 *
 * This class is within the memberjunction/server package because it is closely coupled to other aspects of what
 * happens in the server. That's why it is not in the core-entities-server package.
 */
export declare class MJEntityPermissionEntityServer extends MJEntityPermissionEntity {
    protected static _entityIDQueue: string[];
    protected static _lastModifiedTime: Date | null;
    protected static _submissionTimer: NodeJS.Timeout | null;
    protected static _submissionDelay: number;
    protected static _baseURL: string;
    protected static _port: number;
    protected static _apiEndpoint: string;
    protected static getSubmissionURL(): string;
    static get EntityIDQueue(): string[];
    static ClearQueue(): void;
    static AddToQueue(entityID: string): void;
    protected static CheckStartSubmissionTimer(): void;
    protected static StartSubmissionTimer(): void;
    protected static SubmitQueue(): Promise<void>;
    Save(options?: EntitySaveOptions): Promise<boolean>;
    Delete(options: EntityDeleteOptions): Promise<boolean>;
}
//# sourceMappingURL=MJEntityPermissionEntityServer.server.d.ts.map