import { AbstractSimplePool } from "nostr-tools/lib/types/pool";
export type RecurringDebitTimeUnit = 'day' | 'week' | 'month';
export type BudgetFrequency = {
    number: number;
    unit: RecurringDebitTimeUnit;
};
export type NdebitData = {
    pointer?: string;
    amount_sats?: number;
    bolt11?: string;
    frequency?: BudgetFrequency;
};
export type NdebitSuccess = {
    res: 'ok';
};
export type NdebitSuccessPayment = {
    res: 'ok';
    preimage: string;
};
export type NdebitFailure = {
    res: 'GFY';
    error: string;
    code: number;
};
export type NdebitResponse = NdebitSuccess | NdebitSuccessPayment | NdebitFailure;
export declare const SendNdebitRequest: (pool: AbstractSimplePool, privateKey: Uint8Array, relays: string[], pubKey: string, data: NdebitData, timeoutSeconds?: number) => Promise<NdebitResponse>;
export declare const newNdebitFullAccessRequest: (pointer?: string) => NdebitData;
export declare const newNdebitPaymentRequest: (invoice: string, amount?: number, pointer?: string) => NdebitData;
export declare const newNdebitBudgetRequest: (frequency: BudgetFrequency, amount: number, pointer?: string) => NdebitData;
export declare const newNdebitEvent: (content: string, fromPub: string, toPub: string) => {
    content: string;
    created_at: number;
    kind: number;
    pubkey: string;
    tags: string[][];
};
export declare const newNdebitFilter: (publicKey: string, eventId: string) => {
    since: number;
    kinds: number[];
    '#p': string[];
    '#e': string[];
};
