import { EASUpdateAction, EASUpdateContext } from '../../eas-update/utils'; import { UpdateChannelBasicInfoFragment } from '../../graphql/generated'; import { Connection, Edge, QueryParams } from '../../utils/relay'; /** * Select a channel for the project. * * @constructor * @param {function} options.filterPredicate - A predicate to filter the channels that are shown to the user. It takes a channelInfo object as a parameter and returns a boolean. * @param {string} options.printedType - The type of channel printed to the user. Defaults to 'channel'. * @param {number} options.pageSize - The number of channels to show per page. Defaults to 100. * @param {function} options.beforeEachFilterQuery Optional. If a filter predicate was specified, this callback function will be called before each query. * @args externalQueryParams The query params for the pagination. * @args totalNodesFetched The total number of nodes fetched so far. * @args dataset The dataset so far. * @param {function} options.afterEachFilterQuery Optional. If a filter predicate was specified, this callback function will be called after each query. * @args externalQueryParams The query params for the pagination. * @args totalNodesFetched The total number of nodes fetched so far. * @args dataset The dataset so far. * @args willFetchAgain If the query will fetch again to get a complete page. */ export declare class SelectChannel implements EASUpdateAction { private readonly options; constructor(options?: { filterPredicate?: (channelInfo: UpdateChannelBasicInfoFragment) => boolean; printedType?: string; pageSize?: number; beforeEachFilterQuery?: (externalQueryParams: QueryParams, totalNodesFetched: number, dataset: Edge[]) => void; afterEachFilterQuery?: (externalQueryParams: QueryParams, totalNodesFetched: number, dataset: Edge[], willFetchAgain: boolean) => void; }); queryAsync(ctx: EASUpdateContext, queryParams: QueryParams): Promise>; filterQueryAsync(ctx: EASUpdateContext, queryParams: QueryParams, filterPredicate: (channelInfo: UpdateChannelBasicInfoFragment) => boolean): Promise>; runAsync(ctx: EASUpdateContext): Promise; }