volleyball-dev-frontend/node_modules/@react-pdf/font/lib/index.d.ts
2025-06-02 16:42:16 +00:00

88 lines
2.9 KiB
TypeScript

import * as fontkit from 'fontkit';
type Font = Omit<fontkit.Font, 'type'> & {
type: 'TTF' | 'WOFF' | 'WOFF2' | 'STANDARD';
encode?: (string: string) => number[];
};
type FontStyle = 'normal' | 'italic' | 'oblique';
type FontWeight = number | 'thin' | 'ultralight' | 'light' | 'normal' | 'medium' | 'semibold' | 'bold' | 'ultrabold' | 'heavy';
type FontDescriptor = {
fontFamily: string;
fontStyle?: FontStyle;
fontWeight?: FontWeight;
};
type RemoteOptions = {
method?: 'GET' | 'HEAD' | 'POST' | 'PUT' | 'DELETE' | 'PATCH';
headers?: Record<string, string>;
body?: any;
};
type FontSourceOptions = {
postscriptName?: string;
} & RemoteOptions;
type FontSource$1 = {
src: string;
fontStyle?: FontStyle;
fontWeight?: FontWeight;
} & FontSourceOptions;
type SingleLoad = {
family: string;
} & FontSource$1;
type BulkLoad = {
family: string;
fonts: FontSource$1[];
};
interface EmojiSourceUrl {
url: string;
format?: string;
withVariationSelectors?: boolean;
}
interface EmojiSourceBuilder {
builder: (code: string) => string;
withVariationSelectors?: boolean;
}
type EmojiSource = EmojiSourceUrl | EmojiSourceBuilder;
type HyphenationCallback = (word: string) => string[];
declare class FontSource {
src: string;
fontFamily: string;
fontStyle: FontStyle;
fontWeight: number;
data: Font | null;
options: FontSourceOptions;
loadResultPromise: Promise<void> | null;
constructor(src: string, fontFamily: string, fontStyle?: FontStyle, fontWeight?: number, options?: FontSourceOptions);
_load(): Promise<void>;
load(): Promise<void>;
}
declare class FontFamily {
family: string;
sources: FontSource[];
static create(family: string): FontFamily;
constructor(family: string);
register({ src, fontWeight, fontStyle, ...options }: Omit<SingleLoad, 'family'>): void;
resolve(descriptor: FontDescriptor): FontSource;
}
declare class FontStore {
fontFamilies: Record<string, FontFamily>;
emojiSource: EmojiSource | null;
constructor();
hyphenationCallback: HyphenationCallback | null;
register: (data: SingleLoad | BulkLoad) => void;
registerEmojiSource: (emojiSource: EmojiSource) => void;
registerHyphenationCallback: (callback: HyphenationCallback) => void;
getFont: (descriptor: FontDescriptor) => FontSource;
load: (descriptor: FontDescriptor) => Promise<void>;
reset: () => void;
clear: () => void;
getRegisteredFonts: () => Record<string, FontFamily>;
getEmojiSource: () => EmojiSource | null;
getHyphenationCallback: () => HyphenationCallback | null;
getRegisteredFontFamilies: () => string[];
}
type FontStoreType = FontStore;
export { type BulkLoad, type EmojiSource, type Font, type FontDescriptor, type FontSource$1 as FontSource, type FontSourceOptions, type FontStoreType, type FontStyle, type FontWeight, type HyphenationCallback, type RemoteOptions, type SingleLoad, FontStore as default };