///
import { HB } from '../hb';
import { IOutputFile, InputTemplate, SubsetResult } from '../interface';
import type { FontType } from '../utils/detectFormat';
/** 直接根据chunk 批量分包字体 */
export declare const useSubset: (face: HB.Face, hb: HB.Handle, totalChunk: number[][], outputFile: IOutputFile, targetType: FontType, ctx: import("../pipeline").Context<{
input: InputTemplate;
originFile: Uint8Array;
ttfFile: Uint8Array;
ttfBufferSize: number;
hb: {
createSubset: (face: {
ptr: any;
upem: any;
reference_table(table: string): Uint8Array;
collectUnicodes(): Uint32Array;
getAxisInfos(): Record;
destroy(): void;
free(): void;
}, preserveNameIds?: number[] | undefined, variationAxes?: Record | undefined) => {
ptr: any;
clearTableDrop(): void;
adjustLayout(): void;
deleteChar(arr: number[]): void;
addChars(arr: (number | [number, number])[]): void;
getResult(): number;
runSubset(): number;
destroy(): void;
toBinary(): {
destroy(): void;
offset: any;
subsetByteLength: any;
blobPtr: any;
data: () => Uint8Array;
};
};
createBlob: (blob: Uint8Array) => {
ptr: any;
blobPtr: any;
destroy(): void;
free(): void;
};
createFace: (blob: {
ptr: any;
blobPtr: any;
destroy(): void;
free(): void;
}, index: number) => {
ptr: any;
upem: any;
reference_table(table: string): Uint8Array;
collectUnicodes(): Uint32Array;
getAxisInfos(): Record;
destroy(): void;
free(): void;
};
createFont: (face: {
ptr: any;
upem: any;
reference_table(table: string): Uint8Array;
collectUnicodes(): Uint32Array;
getAxisInfos(): Record;
destroy(): void;
free(): void;
}) => {
ptr: any;
glyphName: (glyphId: number) => string;
glyphToPath: (glyphId: number) => string;
glyphToJson(glyphId: number): {
type: string;
values: number[];
}[];
setScale(xScale: number, yScale: number): void;
setletiations(letiations: Record): void;
destroy(): void;
};
createBuffer: () => {
ptr: any;
addText(text: string): void;
guessSegmentProperties(): any;
setDirection(dir: "ltr" | "rtl" | "ttb" | "btt"): void;
setFlags(flags: import("../hb").BufferFlag[]): void;
setLanguage(language: string): void;
setScript(script: string): void;
setClusterLevel(level: number): void;
json(): {
g: number;
cl: number;
ax: number;
ay: number;
dx: number;
dy: number;
flags: number;
}[];
destroy(): void;
};
shape: (font: {
ptr: any;
glyphName: (glyphId: number) => string;
glyphToPath: (glyphId: number) => string;
glyphToJson(glyphId: number): {
type: string;
values: number[];
}[];
setScale(xScale: number, yScale: number): void;
setletiations(letiations: Record): void;
destroy(): void;
}, buffer: {
ptr: any;
addText(text: string): void;
guessSegmentProperties(): any;
setDirection(dir: "ltr" | "rtl" | "ttb" | "btt"): void;
setFlags(flags: import("../hb").BufferFlag[]): void;
setLanguage(language: string): void;
setScript(script: string): void;
setClusterLevel(level: number): void;
json(): {
g: number;
cl: number;
ax: number;
ay: number;
dx: number;
dy: number;
flags: number;
}[];
destroy(): void;
}, features?: string | undefined) => void;
shapeWithTrace: (font: {
ptr: any;
glyphName: (glyphId: number) => string;
glyphToPath: (glyphId: number) => string;
glyphToJson(glyphId: number): {
type: string;
values: number[];
}[];
setScale(xScale: number, yScale: number): void;
setletiations(letiations: Record): void;
destroy(): void;
}, buffer: {
ptr: any;
glyphName: (glyphId: number) => string;
glyphToPath: (glyphId: number) => string;
glyphToJson(glyphId: number): {
type: string;
values: number[];
}[];
setScale(xScale: number, yScale: number): void;
setletiations(letiations: Record): void;
destroy(): void;
}, features: string, stop_at: number, stop_phase: number) => any;
exports: any;
heapu8: Uint8Array;
heapf32: Float32Array;
heapi32: Int32Array;
heapu32: Uint32Array;
typedArrayFromSet: {
(setPtr: number, arrayClass: Float32ArrayConstructor): Float32Array;
(setPtr: number, arrayClass: Int32ArrayConstructor): Int32Array;
(setPtr: number, arrayClass: Uint32ArrayConstructor): Uint32Array;
(setPtr: number, arrayClass: Uint8ArrayConstructor): Uint8Array;
};
collectUnicodes: (ptr?: number | undefined) => Uint32Array;
};
subsetsToRun: number[][];
subsetResult: SubsetResult;
face: {
ptr: any;
upem: any;
reference_table(table: string): Uint8Array;
collectUnicodes(): Uint32Array;
getAxisInfos(): Record;
destroy(): void;
free(): void;
};
blob: {
ptr: any;
blobPtr: any;
destroy(): void;
free(): void;
};
subsets: import("../interface").Subsets;
nameTable: Record;
fontTool: {
tableEntries: Map | Map;
data: DataView;
font: import("opentype.js").Font;
getTable(parser: {
parse: Function;
}, name: string, ...args: unknown[]): any;
};
bundleMessage: Partial;
cssMessage: {
css: string;
family: string;
style: string;
weight: string | number | undefined;
display: string;
};
reporter: {
config: {
fontPath: string;
threads: {
service: undefined;
split?: boolean | undefined;
options?: import("workerpool/types/types").WorkerPoolOptions | undefined;
};
FontPath: string | Uint8Array | Buffer;
destFold: string;
css?: Partial<{
fontFamily: string;
fontWeight: string | number | false;
fontStyle: string;
fontDisplay: string;
localFamily: string | false | string[];
polyfill: (string | {
name: string;
format?: string | undefined;
})[];
comment: false | {
base?: false | undefined;
nameTable?: false | undefined;
unicodes?: true | undefined;
};
compress: boolean;
}> | undefined;
targetType?: FontType | undefined;
subsets?: import("../interface").Subsets | undefined;
autoChunk?: boolean | undefined;
unicodeRank?: number[][] | undefined;
chunkSize?: number | undefined;
chunkSizeTolerance?: number | undefined;
maxAllowSubsetsCount?: number | undefined;
cssFileName?: string | undefined;
testHTML?: boolean | undefined;
reporter?: boolean | undefined;
previewImage?: {
text?: string | undefined;
name?: string | undefined;
} | undefined;
log?: ((...args: any[]) => void) | undefined;
logger?: {
settings?: import("tslog").ISettingsParam | undefined;
} | undefined;
renameOutputFont?: string | ((replaceProps: import("./templateReplacer").ReplaceProps) => string) | undefined;
outputFile?: IOutputFile | undefined;
fontFeature?: boolean | undefined;
};
message: import("../templates/reporter").NameTable;
data: {
name: string;
size: number;
chars: string;
diff: number;
charsSize: number;
}[];
record: import("../pipeline").PerformanceRecord[];
version: string;
env: {
runtime?: {
name: string;
version: string;
} | undefined;
os?: {
name: string;
version: string;
build_number?: string | undefined;
} | undefined;
device?: {
cpus: number;
locale: string;
model?: string | undefined;
manufacturer?: string | undefined;
architecture: string;
} | undefined;
createdTime?: string | undefined;
envName: string;
};
bundleMessage: import("../templates/reporter").BundleReporter;
css: Omit<{
css: string;
family: string;
style: string;
weight: string | number | undefined;
display: string;
}, "css">;
};
}, unknown>) => Promise;
import { FeatureMap } from '../subsetService/featureMap';
/** 获取自动分包方案 */
export declare const getAutoSubset: (subsetUnicode: number[], contoursBorder: number, contoursMap: Map, featureMap: FeatureMap, maxCharSize: number) => number[][];