@atproto/api
Version:
Client library for atproto and Bluesky
106 lines (105 loc) • 3.62 kB
TypeScript
import { AppBskyActorDefs, AppBskyFeedDefs, AppBskyGraphDefs, ComAtprotoLabelDefs } from '../client/index';
export declare type Label = ComAtprotoLabelDefs.Label;
export declare type LabelPreference = 'ignore' | 'warn' | 'hide';
export declare type LabelDefinitionFlag = 'no-override' | 'adult' | 'unauthed';
export declare type LabelDefinitionOnWarnBehavior = 'blur' | 'blur-media' | 'alert' | null;
export interface LabelDefinitionLocalizedStrings {
name: string;
description: string;
}
export declare type LabelDefinitionLocalizedStringsMap = Record<string, LabelDefinitionLocalizedStrings>;
export interface LabelDefinition {
id: string;
groupId: string;
configurable: boolean;
preferences: LabelPreference[];
flags: LabelDefinitionFlag[];
onwarn: LabelDefinitionOnWarnBehavior;
strings: {
settings: LabelDefinitionLocalizedStringsMap;
account: LabelDefinitionLocalizedStringsMap;
content: LabelDefinitionLocalizedStringsMap;
};
}
export interface LabelGroupDefinition {
id: string;
configurable: boolean;
labels: LabelDefinition[];
strings: {
settings: LabelDefinitionLocalizedStringsMap;
};
}
export declare type LabelDefinitionMap = Record<string, LabelDefinition>;
export declare type LabelGroupDefinitionMap = Record<string, LabelGroupDefinition>;
interface Labeler {
did: string;
displayName: string;
}
export interface LabelerSettings {
labeler: Labeler;
labels: Record<string, LabelPreference>;
}
export declare type ModerationSubjectProfile = AppBskyActorDefs.ProfileViewBasic | AppBskyActorDefs.ProfileView | AppBskyActorDefs.ProfileViewDetailed;
export declare type ModerationSubjectPost = AppBskyFeedDefs.PostView;
export declare type ModerationSubjectFeedGenerator = AppBskyFeedDefs.GeneratorView;
export declare type ModerationSubjectUserList = AppBskyGraphDefs.ListViewBasic | AppBskyGraphDefs.ListView;
export declare type ModerationSubject = ModerationSubjectProfile | ModerationSubjectPost | ModerationSubjectFeedGenerator | ModerationSubjectUserList;
export declare type ModerationCauseSource = {
type: 'user';
} | {
type: 'list';
list: AppBskyGraphDefs.ListViewBasic;
} | {
type: 'labeler';
labeler: Labeler;
};
export declare type ModerationCause = {
type: 'blocking';
source: ModerationCauseSource;
priority: 3;
} | {
type: 'blocked-by';
source: ModerationCauseSource;
priority: 4;
} | {
type: 'block-other';
source: ModerationCauseSource;
priority: 4;
} | {
type: 'label';
source: ModerationCauseSource;
label: Label;
labelDef: LabelDefinition;
setting: LabelPreference;
priority: 1 | 2 | 5 | 7 | 8;
} | {
type: 'muted';
source: ModerationCauseSource;
priority: 6;
};
export interface ModerationOpts {
userDid: string;
adultContentEnabled: boolean;
labels: Record<string, LabelPreference>;
labelers: LabelerSettings[];
}
export declare class ModerationDecision {
cause: ModerationCause | undefined;
alert: boolean;
blur: boolean;
blurMedia: boolean;
filter: boolean;
noOverride: boolean;
additionalCauses: ModerationCause[];
did: string;
static noop(): ModerationDecision;
constructor(cause?: ModerationCause | undefined, alert?: boolean, blur?: boolean, blurMedia?: boolean, filter?: boolean, noOverride?: boolean, additionalCauses?: ModerationCause[], did?: string);
}
export interface ModerationUI {
filter?: boolean;
blur?: boolean;
alert?: boolean;
cause?: ModerationCause;
noOverride?: boolean;
}
export {};