import type { ExactLength, ExclusiveNumericRangeSchema, InclusiveNumericRangeSchema, Pattern } from "@ark/schema"; import type { regex } from "arkregex"; import type { BaseType } from "./base.ts"; /** @ts-ignore cast variance */ interface Type extends BaseType { matching(schema: schema): schema extends string ? Type, $> : schema extends { rule: infer pattern extends string; } ? Type, $> : this; atLeastLength(schema: InclusiveNumericRangeSchema): this; atMostLength(schema: InclusiveNumericRangeSchema): this; moreThanLength(schema: ExclusiveNumericRangeSchema): this; lessThanLength(schema: ExclusiveNumericRangeSchema): this; exactlyLength(schema: ExactLength.Schema): this; } export type { Type as StringType };