import { ListOutputsResult } from '@bsv/sdk';
import { ValidListOutputsArgs } from '../../sdk/validationHelpers';
import { StorageProvider } from '../StorageProvider';
import { AuthId } from '../../sdk/WalletStorage.interfaces';
import { TableOutput } from '../schema/tables/TableOutput';
export interface ListOutputsSpecOp {
    name: string;
    useBasket?: string;
    ignoreLimit?: boolean;
    includeOutputScripts?: boolean;
    includeSpent?: boolean;
    resultFromTags?: (s: StorageProvider, auth: AuthId, vargs: ValidListOutputsArgs, specOpTags: string[]) => Promise<ListOutputsResult>;
    resultFromOutputs?: (s: StorageProvider, auth: AuthId, vargs: ValidListOutputsArgs, specOpTags: string[], outputs: TableOutput[]) => Promise<ListOutputsResult>;
    filterOutputs?: (s: StorageProvider, auth: AuthId, vargs: ValidListOutputsArgs, specOpTags: string[], outputs: TableOutput[]) => Promise<TableOutput[]>;
    /**
     * undefined to intercept no tags from vargs,
     * empty array to intercept all tags,
     * or an explicit array of tags to intercept.
     */
    tagsToIntercept?: string[];
    /**
     * How many positional tags to intercept.
     */
    tagsParamsCount?: number;
}
export declare const getBasketToSpecOp: () => Record<string, ListOutputsSpecOp>;
//# sourceMappingURL=ListOutputsSpecOp.d.ts.map