export declare enum RecordKind {
    Custom = 0,
    SPF1 = 1,
    DKIM1 = 2,
    DMARC1 = 3,
    STSv1 = 4,
    CustomKV = 5
}
export interface CustomRecord {
    raw: string;
    errors: string[];
    value: string;
}
export interface SPF1Record {
    raw: string;
    errors: string[];
    v: string;
    a?: boolean;
    mx?: boolean;
    all?: string;
    include?: string[];
    ip4?: string[];
    ip6?: string[];
    ptr?: boolean;
    exists?: string;
    redirect?: string;
    exp?: string;
    'a:domain'?: string;
    'mx:domain'?: string;
    [key: string]: string | string[] | boolean | number | undefined;
}
export interface DMARC1Record {
    raw: string;
    errors: string[];
    v: string;
    p?: string;
    sp?: string;
    rua?: string[];
    ruf?: string[];
    adkim?: string;
    aspf?: string;
    ri?: number;
    fo?: string[];
    pct?: number;
    rf?: string;
    [key: string]: string | string[] | number | undefined;
}
export interface DKIM1Record {
    raw: string;
    errors: string[];
    v?: string;
    k?: string;
    p?: string;
    h?: string[];
    s?: string[];
    t?: string[];
    n?: string;
    [key: string]: string | string[] | undefined;
}
export interface STSv1Record {
    raw: string;
    errors: string[];
    v: string;
    id: string;
    [key: string]: string | string[] | undefined;
}
export interface CustomKVRecord {
    raw: string;
    errors: string[];
    key: string;
    value: string;
}
export declare class TXTResult {
    records: TXTRecord[];
    getCustomRecords(): CustomRecord[] | null;
    getSPF(): SPF1Record | null;
    getDMARC(): DMARC1Record | null;
    getDKIM(): DKIM1Record | null;
    getSTS(): STSv1Record | null;
    getCustomKVRecord(key?: string): CustomKVRecord | null;
    getAllKVRecord(): CustomKVRecord[] | null;
}
export declare class TXTRecord {
    raw: string;
    kind: RecordKind;
    parsed: CustomRecord | SPF1Record | DMARC1Record | DKIM1Record | STSv1Record | CustomKVRecord | null;
    constructor(raw: string);
    private parse;
    parseSPF1(raw: string): SPF1Record;
    parseDMARC1(raw: string): DMARC1Record;
    parseDKIM1(raw: string): DKIM1Record;
    parseSTSv1(raw: string): STSv1Record;
    isValid(): boolean;
    toString(): string;
}
