import { type $Typed } from '../../../../util';
import type * as ToolsOzoneModerationDefs from './defs.js';
import type * as ComAtprotoAdminDefs from '../../../com/atproto/admin/defs.js';
import type * as ComAtprotoRepoStrongRef from '../../../com/atproto/repo/strongRef.js';
export type QueryParams = {};
export interface InputSchema {
    event: $Typed<ToolsOzoneModerationDefs.ModEventTakedown> | $Typed<ToolsOzoneModerationDefs.ModEventAcknowledge> | $Typed<ToolsOzoneModerationDefs.ModEventEscalate> | $Typed<ToolsOzoneModerationDefs.ModEventComment> | $Typed<ToolsOzoneModerationDefs.ModEventLabel> | $Typed<ToolsOzoneModerationDefs.ModEventReport> | $Typed<ToolsOzoneModerationDefs.ModEventMute> | $Typed<ToolsOzoneModerationDefs.ModEventUnmute> | $Typed<ToolsOzoneModerationDefs.ModEventMuteReporter> | $Typed<ToolsOzoneModerationDefs.ModEventUnmuteReporter> | $Typed<ToolsOzoneModerationDefs.ModEventReverseTakedown> | $Typed<ToolsOzoneModerationDefs.ModEventResolveAppeal> | $Typed<ToolsOzoneModerationDefs.ModEventEmail> | $Typed<ToolsOzoneModerationDefs.ModEventDivert> | $Typed<ToolsOzoneModerationDefs.ModEventTag> | $Typed<ToolsOzoneModerationDefs.AccountEvent> | $Typed<ToolsOzoneModerationDefs.IdentityEvent> | $Typed<ToolsOzoneModerationDefs.RecordEvent> | $Typed<ToolsOzoneModerationDefs.ModEventPriorityScore> | $Typed<ToolsOzoneModerationDefs.AgeAssuranceEvent> | $Typed<ToolsOzoneModerationDefs.AgeAssuranceOverrideEvent> | $Typed<ToolsOzoneModerationDefs.RevokeAccountCredentialsEvent> | $Typed<ToolsOzoneModerationDefs.ScheduleTakedownEvent> | $Typed<ToolsOzoneModerationDefs.CancelScheduledTakedownEvent> | {
        $type: string;
    };
    subject: $Typed<ComAtprotoAdminDefs.RepoRef> | $Typed<ComAtprotoRepoStrongRef.Main> | {
        $type: string;
    };
    subjectBlobCids?: string[];
    createdBy: string;
    modTool?: ToolsOzoneModerationDefs.ModTool;
    /** An optional external ID for the event, used to deduplicate events from external systems. Fails when an event of same type with the same external ID exists for the same subject. */
    externalId?: string;
}
export type OutputSchema = ToolsOzoneModerationDefs.ModEventView;
export interface HandlerInput {
    encoding: 'application/json';
    body: InputSchema;
}
export interface HandlerSuccess {
    encoding: 'application/json';
    body: OutputSchema;
    headers?: {
        [key: string]: string;
    };
}
export interface HandlerError {
    status: number;
    message?: string;
    error?: 'SubjectHasAction' | 'DuplicateExternalId';
}
export type HandlerOutput = HandlerError | HandlerSuccess;
//# sourceMappingURL=emitEvent.d.ts.map