import { ZodSchema, ZodTypeDef } from 'zod';
import { SignInResolver } from '../types';
import { JsonObject } from '@backstage/types';
/** @public */
export interface SignInResolverFactory<TAuthResult = any, TOptions = any> {
    (...options: undefined extends TOptions ? [options?: TOptions] : [options: TOptions]): SignInResolver<TAuthResult>;
    optionsJsonSchema?: JsonObject;
}
/** @public */
export interface SignInResolverFactoryOptions<TAuthResult, TOptionsOutput, TOptionsInput> {
    optionsSchema?: ZodSchema<TOptionsOutput, ZodTypeDef, TOptionsInput>;
    create(options: TOptionsOutput): SignInResolver<TAuthResult>;
}
/** @public */
export declare function createSignInResolverFactory<TAuthResult, TOptionsOutput, TOptionsInput>(options: SignInResolverFactoryOptions<TAuthResult, TOptionsOutput, TOptionsInput>): SignInResolverFactory<TAuthResult, TOptionsInput>;
