/**
 * Discourse Node - Version 1
 * Discriminator: resource=user, operation=getAll
 */


interface Credentials {
  discourseApi: CredentialReference;
}

/** Get many categories */
export type DiscourseV1UserGetAllParams = {
  resource: 'user';
  operation: 'getAll';
/**
 * User flags to search for
 */
    flag?: 'active' | 'blocked' | 'new' | 'staff' | 'suspect' | 'suspended' | Expression<string>;
/**
 * Whether to return all results or only up to a given limit
 * @default false
 */
    returnAll?: boolean | Expression<boolean>;
/**
 * Max number of results to return
 * @displayOptions.show { returnAll: [false] }
 * @default 50
 */
    limit?: number | Expression<number>;
/**
 * Options
 * @default {}
 */
    options?: {
    /** Whether to sort ascending
     * @default true
     */
    asc?: boolean | Expression<boolean>;
    /** What to order by
     * @default created
     */
    order?: 'created' | 'days_visited' | 'email' | 'last_emailed' | 'posts' | 'posts_read' | 'read_time' | 'seen' | 'topics_viewed' | 'trust_level' | 'username' | Expression<string>;
    /** Whether to include user email addresses
     * @default false
     */
    showEmails?: boolean | Expression<boolean>;
    /** Whether to return user stats
     * @default false
     */
    stats?: boolean | Expression<boolean>;
  };
};

export type DiscourseV1UserGetAllNode = {
  type: 'n8n-nodes-base.discourse';
  version: 1;
  credentials?: Credentials;
  config: NodeConfig<DiscourseV1UserGetAllParams>;
};