import Card from "../card/card";
import { PileElementType } from "../../types/pile.types";
import { CardElementType } from "../../types/card.types";
export declare const slideCard: <T extends Card>(cardElement: CardElementType<T>, vector: number[], duration: number) => Promise<Animation | undefined>;
export declare const turnCard: <T extends Card>(cardElement: CardElementType<T>, duration: number) => Promise<unknown>;
export declare const zoomCard: <T extends Card>(cardElement: CardElementType<T>, factor: number, duration: number) => Promise<void>;
export declare const slideDeck: <T extends Card>(pile: PileElementType<T>, vector: number[], duration: number) => Promise<void>;
/**
 *
 * This is an ASYNC function. You likely want to AWAIT this before performing more operations
 * @param numberOfCards The number of cards to deal out
 * @param from The pile the cards are coming from
 * @param to The pile(s?) the cards are going to
 * @param delayTime The delay between dealing cards
 */
export declare function deal<T extends Card>(numberOfCards: number, from: PileElementType<T>, to: PileElementType<T>[] | PileElementType<T>, delayTime?: number): Promise<boolean[]>;
export declare function denyMove<T extends Card>(cardElement: CardElementType<T>): Promise<unknown>;
export declare function animateMoveCardToNewPile<T extends Card>(source: PileElementType<T>, destination: PileElementType<T>, cardElement: CardElementType<T>, index: number, groupOffset?: number): Promise<Animation | undefined>;
//# sourceMappingURL=animate.d.ts.map